This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
workshops:hpcprac3 [2017/07/05 10:08] kevin |
workshops:hpcprac3 [2021/12/09 16:42] (current) |
||
|---|---|---|---|
| Line 103: | Line 103: | ||
| </ | </ | ||
| - | Compile this with the **mpicc** MPI C compiler. | + | Compile this with the **mpicc** MPI C compiler: |
| - | > Those of you who prefer Fortran will need to compile your hello_mpi.f90 with the **mpif90** compiler instead: | + | mpicc -o hello_mpi.x |
| + | |||
| + | > Those of you who prefer Fortran will need to compile your hello_mpi.f90 with the **mpif90** compiler instead. | ||
| <code Fortran> | <code Fortran> | ||
| Line 120: | Line 122: | ||
| end | end | ||
| </ | </ | ||
| + | |||
| + | > Compile the Fortran example with: | ||
| + | |||
| + | mpif90 -o hello_mpi.x | ||
| + | |||
| + | |||
| If you get an error message complaining that **mpicc** (or **mpif90**) is not found, then you forgot to load the necessary modules: | If you get an error message complaining that **mpicc** (or **mpif90**) is not found, then you forgot to load the necessary modules: | ||
| Line 134: | Line 142: | ||
| 1) gcc/ | 1) gcc/ | ||
| </ | </ | ||
| + | |||
| + | Now create a job script file to run your first MPI program, and save it as // | ||
| + | <code bash> | ||
| + | #!/bin/bash | ||
| + | #PBS -N Hello | ||
| + | #PBS -l select=1: | ||
| + | #PBS -P Wchpc | ||
| + | #PBS -q R522145 | ||
| + | #PBS -W group_list=training | ||
| + | #PBS -l walltime=4: | ||
| + | |||
| + | module load chpc/ | ||
| + | |||
| + | cd / | ||
| + | CWD=`pwd` | ||
| + | echo " | ||
| + | nproc=`cat $PBS_NODEFILE | wc -l` | ||
| + | echo "nproc = $nproc" | ||
| + | echo "Nodes used by this job:" | ||
| + | cat $PBS_NODEFILE | ||
| + | |||
| + | echo " | ||
| + | echo " | ||
| + | |||
| + | mpirun -n $nproc ./ | ||
| + | |||
| + | echo " | ||
| + | echo "... done." | ||
| + | </ | ||
| + | |||
| + | Launch the job script with **qsub**: | ||
| + | |||
| + | qsub hello.pbs | ||
| + | | ||
| + | Check its status with **qstat**: | ||
| + | |||
| + | qstat | grep student00 | ||
| + | |||
| + | > Replace the '' | ||
| + | |||
| + | Once your job status has changed from '' | ||
| + | |||
| + | ls | ||
| + | |||
| + | The file you want to look at will be called something like // | ||
| + | |||
| + | cat Hello.o12345 | ||
| + | |||
| + | > Replace 12345 with the job number! | ||
| + | |||
| + | =====Carry On===== | ||
| + | |||
| + | Attempt the exercises in the {{: | ||
| + | |||
| + | |||