OpenMPI
After saving the example program, load the openmpi module and compile the program with the mpicc compiler wrapper:
module load openmpi
mpicc mpi_hello_world.c -o mpi_hello_world
Create a Slurm script mpi_hello_world.sbatch requesting multiple tasks (cores) across multiple nodes. Please note that OpenMPI should use mpirun instead of srun:
#!/bin/bash
#SBATCH --job-name=mpi-hello-world
#SBATCH --output=mpi-hello-world.out
#SBATCH --time=00:30:00
#SBATCH --partition=cpu
#SBATCH --nodes=2
#SBATCH --ntasks-per-node=10
#SBATCH --mem-per-cpu=4G
#SBATCH --mail-user username@gvsu.edu
#SBATCH --mail-type BEGIN
#SBATCH --mail-type END
#SBATCH --mail-type FAIL
module purge
module load openmpi
mpirun ~/mpi-hello-world-openmpi/mpi_hello_world
Submit the job to the cluster:
sbatch mpi_hello_world.sbatch
The output shows multiple processes running across multiple cores and systems:
Hello world from processor c001.clipper.gvsu.edu, rank 1 out of 20 processors
Hello world from processor c002.clipper.gvsu.edu, rank 14 out of 20 processors
Hello world from processor c002.clipper.gvsu.edu, rank 15 out of 20 processors
Hello world from processor c001.clipper.gvsu.edu, rank 6 out of 20 processors
Hello world from processor c002.clipper.gvsu.edu, rank 18 out of 20 processors
Hello world from processor c002.clipper.gvsu.edu, rank 16 out of 20 processors
Hello world from processor c002.clipper.gvsu.edu, rank 12 out of 20 processors
Hello world from processor c002.clipper.gvsu.edu, rank 13 out of 20 processors
Hello world from processor c002.clipper.gvsu.edu, rank 19 out of 20 processors
Hello world from processor c002.clipper.gvsu.edu, rank 17 out of 20 processors
Hello world from processor c002.clipper.gvsu.edu, rank 11 out of 20 processors
Hello world from processor c002.clipper.gvsu.edu, rank 10 out of 20 processors
Hello world from processor c001.clipper.gvsu.edu, rank 4 out of 20 processors
Hello world from processor c001.clipper.gvsu.edu, rank 8 out of 20 processors
Hello world from processor c001.clipper.gvsu.edu, rank 2 out of 20 processors
Hello world from processor c001.clipper.gvsu.edu, rank 3 out of 20 processors
Hello world from processor c001.clipper.gvsu.edu, rank 7 out of 20 processors
Hello world from processor c001.clipper.gvsu.edu, rank 0 out of 20 processors
Hello world from processor c001.clipper.gvsu.edu, rank 9 out of 20 processors
Hello world from processor c001.clipper.gvsu.edu, rank 5 out of 20 processors