Docs
How to submit an MPI parallel job
Submitting MPI parallel Slurm jobs
What is an MPI parallel job?
An MPI parallel job runs on more than one core and more than one host using
the Message Passing Interface (MPI) library for communication between all
cores. A simple script, such as the one given below could be saved as my_script_name.sbatch:
#!/bin/bash
#SBATCH --job-name="My MPI job"
#SBATCH --time=00:30:00
#SBATCH --mem=100M
#SBATCH --account=mygws
#SBATCH --partition=standard
#SBATCH --qos=high
#SBATCH -n 36
#SBATCH -o %j.log
#SBATCH -e %j.err
# Load the modules for the Intel oneAPI library (needed for mpi_myname.exe)
module load oneapi/compilers/24.2.0
module load oneapi/mpi/24.2.0
# Start the job running using Intel oneAPI's "mpirun" job launcher
mpirun ./mpi_myname.exe-n refers to the number of processors or cores you wish to run on. The rest
of the #SBATCH input options, and many more besides, can be found in the
sbatch manual page or in the related articles.
To submit the job, do not run the script, but rather use it as the standard
input to sbatch, like so:
sbatch my_script_name.sbatchMPI implementation and Slurm
The Intel oneAPI library is the only supported MPI library on the cluster. MPI I/O features are fully supported throughout JASMIN. The MPI implementation is available via the module environment for each compiler as listed below:
module load oneapi/compilers/24.2.0
module load oneapi/mpi/24.2.0Parallel MPI compiler with oneAPI
Compile and link to Intel oneAPI libraries using the mpif90, mpif77, mpicc, mpiCC
wrapper scripts which are in the default unix path. The scripts will detect
which compiler you are using (GNU, Intel oneAPI) by the compiler environment loaded
and add the relevant compiler library switches. For example:
module load oneapi/compilers/24.2.0
module load oneapi/mpi/24.2.0
mpif90will use the Intel Fortran compiler ifort.
The GNU compilers gcc, gfortran and the mpich library is available via
the Jaspy environment. Please only run workflows on one compute node over several cores, not cross-node.
For more information, please see the Intel openAPI documentation . More examples will be coming soon.