Description
MPI pour Message Passing Interface est un outil pour le calcul scientifique à haute performance qui permet d’utiliser plusieurs machines. Cet outil permet de faire de la parallélisation à mémoire distribuée et l’échange de données se fait par « passage de messages ».
Catalogue
MPI est disponible dans MatriCS dans différentes variantes. Des versions de ces variantes sont aussi disponibles.
Liste des différentes variantes MPI
Accès aux variantes MPI et versions disponibles
- Toutes ces versions sont accessibles en chargeant le module gnu12
- Lien utile : rechercher un module
OpenMPI
ml gnu12
# meme chose que : module load gnu12
ml openmpi4
Versions disponibles :
- 4.1.1 (via compiler/gnu9)
- 4.1.4 (via gnu12)
MPICH
ml gnu12
ml mpich
- Version disponible : 3.4.3-ofi
MVAPICH2
ml gnu12
ml mvapich2
Versions disponibles :
- 2.3.6 (via compiler/gnu9)
- 2.3.7 (via gnu12)
impi
ml gnu12
ml impi
Versions disponibles :
- 2021.7.1 (défaut)
- 2021.7.0
- 2021.6.0
Tutoriel
Pour utiliser un code MPI, il vous faudra compiler votre programme et/ou l’exécuter avec certaines commandes.
Pour la compilation, vous pourrez utiliser la commande mpicc ou mpicxx et pour l’exécution la commande mpirun (ou mpiexec).
Cependant, ces commandes ne sont pas présents dans l’environnement par défaut.
$ mpicxx
-bash: mpicxx : commande introuvable
$ mpicc
-bash: mpicc : commande introuvable
$ mpirun
-bash: mpirun : commande introuvable
Il faut charger le module adéquat. Par exemple, openmpi.
$ ml gnu12 openmpi4
$ mpicxx
g++: erreur fatale: pas de fichier à l'entrée
compilation terminée.
$ mpicc
gcc: erreur fatale: pas de fichier à l'entrée
compilation terminée.
$ mpirun
--------------------------------------------------------------------------
mpirun could not find anything to do.
It is possible that you forgot to specify how many processes to run
via the "-np" argument.
--------------------------------------------------------------------------
Néanmoins, vous pouvez utiliser d’autres librairies MPI comme mpich2.
# Dans l'hypothese ou le module openmpi4 est deja charge
$ ml swap openmpi4 mpich
$ mpicxx
Error: Command line argument is needed!
$ mpicc
Error: Command line argument is needed!
$ mpirun -n 2 echo Hello World
Hello World
Hello World
Voici un exemple d’utilisation :
$ mpirun -np 4 hostname -s
login01
login01
login01
login01
Documentation
Pour une explication détaillée de la commande mpirun ou mpiexec, vous trouverez plus d’informations