Difference between revisions of "MPI hello world in C"
From ScientificComputing
Line 24: | Line 24: | ||
* Download the MPI Hello World example | * Download the MPI Hello World example | ||
− | [jarunanp@eu-login-10 test_mpi]$ wget https:// | + | [jarunanp@eu-login-10 test_mpi]$ wget -c https://gitlab.ethz.ch/jarunanp/hpc-examples/-/raw/main/mpi/c/hello_mpi.c?inline=false -O hello_mpi.c |
* Compile the code | * Compile the code | ||
− | [jarunanp@eu-login-10 test_mpi]$ mpicc -o | + | [jarunanp@eu-login-10 test_mpi]$ mpicc -o hello_mpi hello_mpi.c |
* Run the executable | * Run the executable | ||
− | [jarunanp@eu-login-10 test_mpi]$ mpirun -np 2 | + | [jarunanp@eu-login-10 test_mpi]$ mpirun -np 2 hello_mpi |
Hello world from processor eu-login-10, rank 0 out of 2 processors | Hello world from processor eu-login-10, rank 0 out of 2 processors | ||
Hello world from processor eu-login-10, rank 1 out of 2 processors | Hello world from processor eu-login-10, rank 1 out of 2 processors | ||
Line 45: | Line 45: | ||
* Run the executable | * Run the executable | ||
− | [jarunanp@eu-ms-022-14 test_mpi]$ mpirun -np 4 | + | [jarunanp@eu-ms-022-14 test_mpi]$ mpirun -np 4 hello_mpi |
Hello world from processor eu-ms-022-14, rank 0 out of 4 processors | Hello world from processor eu-ms-022-14, rank 0 out of 4 processors | ||
Hello world from processor eu-ms-022-14, rank 1 out of 4 processors | Hello world from processor eu-ms-022-14, rank 1 out of 4 processors | ||
Line 60: | Line 60: | ||
== Submit a batch job with BSUB command line == | == Submit a batch job with BSUB command line == | ||
* You can submit a job by using BSUB command line | * You can submit a job by using BSUB command line | ||
− | [jarunanp@eu-login-10 test_mpi]$ bsub -n 4 -W 10 "mpirun | + | [jarunanp@eu-login-10 test_mpi]$ bsub -n 4 -W 10 "mpirun hello_mpi" |
MPI job. | MPI job. | ||
Job <155090084> is submitted to queue <normal.4h>. | Job <155090084> is submitted to queue <normal.4h>. | ||
Line 81: | Line 81: | ||
#BSUB -W 10 | #BSUB -W 10 | ||
#BSUB -J test_mpi | #BSUB -J test_mpi | ||
− | mpirun | + | mpirun hello_mpi |
* Submit a job using the job script | * Submit a job using the job script |
Revision as of 11:01, 28 October 2021
< Examples |
Load modules
We will use the new software stack in this tutorial:
[jarunanp@eu-login-10 ~]$ env2lmod [jarunanp@eu-login-10 ~]$ module load gcc/6.3.0 openmpi/4.0.2 The following have been reloaded with a version change: 1) gcc/4.8.5 => gcc/6.3.0 [jarunanp@eu-login-10 ~]$ which mpirun /cluster/apps/gcc-6.3.0/openmpi-4.0.2-4airvo32ypyuapzgi4fp2kjea5psqu3t/bin/mpirun
MPI Hello World
- Go to $SCRATCH and create a work directory
[jarunanp@eu-login-10 ~]$ cd $SCRATCH [jarunanp@eu-login-10 jarunanp]$ pwd /cluster/scratch/jarunanp [jarunanp@eu-login-10 jarunanp]$ mkdir test_mpi [jarunanp@eu-login-10 jarunanp]$ cd test_mpi [jarunanp@eu-login-10 test_mpi]$
- Download the MPI Hello World example
[jarunanp@eu-login-10 test_mpi]$ wget -c https://gitlab.ethz.ch/jarunanp/hpc-examples/-/raw/main/mpi/c/hello_mpi.c?inline=false -O hello_mpi.c
- Compile the code
[jarunanp@eu-login-10 test_mpi]$ mpicc -o hello_mpi hello_mpi.c
- Run the executable
[jarunanp@eu-login-10 test_mpi]$ mpirun -np 2 hello_mpi Hello world from processor eu-login-10, rank 0 out of 2 processors Hello world from processor eu-login-10, rank 1 out of 2 processors
Run a BSUB interactive session
- Request an interactive session on a compute node:
[jarunanp@eu-login-10 test_mpi]$ bsub -n 4 -W 01:00 -Is bash Generic job. Job <155089738> is submitted to queue <normal.4h>. <<Waiting for dispatch ...>> <<Starting on eu-ms-022-14>> [jarunanp@eu-ms-022-14 test_mpi]$
- Run the executable
[jarunanp@eu-ms-022-14 test_mpi]$ mpirun -np 4 hello_mpi Hello world from processor eu-ms-022-14, rank 0 out of 4 processors Hello world from processor eu-ms-022-14, rank 1 out of 4 processors Hello world from processor eu-ms-022-14, rank 2 out of 4 processors Hello world from processor eu-ms-022-14, rank 3 out of 4 processors [jarunanp@eu-ms-022-14 test_mpi]$
- Exit the interactive session
[jarunanp@eu-ms-022-14 test_mpi]$ exit exit [jarunanp@eu-login-10 test_mpi]$
Submit a batch job with BSUB command line
- You can submit a job by using BSUB command line
[jarunanp@eu-login-10 test_mpi]$ bsub -n 4 -W 10 "mpirun hello_mpi" MPI job. Job <155090084> is submitted to queue <normal.4h>.
- Check the job status
[jarunanp@eu-login-10 test_mpi]$ bjobs JOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME 155090084 user PEND normal.4h eu-login-10 *llo_world Dec 8 15:53 [jarunanp@eu-login-10 test_mpi]$
- Check the output file lsf.o155090084
[jarunanp@eu-login-10 test_mpi]$ cat lsf.o155090084
Create a job script
- Create a job script called job_script.bsub
#!/usr/bin/bash #BSUB -n 4 #BSUB -W 10 #BSUB -J test_mpi mpirun hello_mpi
- Submit a job using the job script
[jarunanp@eu-login-10 test_mpi]$ bsub < job_script.bsub MPI job. Job <155090224> is submitted to queue <normal.4h>.
< Examples |