MPI (The Message Passing Interface), conçue en 1993-94, est une norme définissant une bibliothèque de fonctions, utilisable avec les langages C/C++ et Fortran. Elle permet d'exploiter des ordinateurs distants ou multiprocesseur par passage de messages.
Exemple C | Exemple fortran |
---|---|
|
|
Il faut tout d'abord charger le module Open MPI (ompi)
$ module load mpi/openmpi/icc/1.7.5
Pour le code C/C++
$ mpicc hello.c -o hello
Pour le code Fortran
$ mpif90 hello.f -o hello
mpicc
et mpif90
sont des wrappers
autour du compilateur intel. i.e. le compilateur intel (ifort, icc, …) sera utilisé pour compiler le programme.
Afficher les options de compilation par défaut :
$ mpicc --showme icc -I/Softs/openmpi-intel-1.3.4/include -pthread -L/Softs/openmpi-intel-1.3.4/lib -lmpi -lopen-rte -lopen-pal -ldl -Wl,--export-dynamic -lnsl -lutil -shared-intel
$ mpif90 --showme ifort -I/Softs/openmpi-intel-1.3.4/include -I/Softs/openmpi-intel-1.3.4/lib -L/Softs/openmpi-intel-1.3.4/lib -lmpi_f90 -lmpi_f77 -lmpi -lopen-rte -lopen-pal -ldl -Wl,--export-dynamic -lnsl -lutil -shared-intel
Exécution interactive sur la machine de login (mesocluster) :
$module load mpi/openmpi/icc/1.7.5 $ mpirun -np 4 ./monAppli
Cela exécutera monAppli
en utilisant 4 coeurs sur la machine mesocluster.
Plus d'infos Open MPI avec SGE et Utilisation SGE