Outils pour utilisateurs

Outils du site


mpi

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
mpi [2018/05/15 10:37] hetoussampi [2019/06/05 13:37] (Version actuelle) borlonjo
Ligne 7: Ligne 7:
 Pour le compiler ajoutez les lignes suivantes dans votre fichier .bashrc Pour le compiler ajoutez les lignes suivantes dans votre fichier .bashrc
 <code bash> <code bash>
-if ! (which mpicc>/dev/null 2>&1) && [ -d /usr/lib64/openmpi ] +if ! (which mpicc>/dev/null 2>&1) && [ -d /usr/lib64/openmpi ]then 
-then +  export PATH=/usr/lib64/openmpi/bin:$PATH 
-export PATH=/usr/lib64/openmpi/bin:$PATH +  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/openmpi/lib
-export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/openmpi/lib+
 fi fi
 </code> </code>
  
-Elles permettent de compiler et linker avec la bonne version de MPI.+Elles permettent de compiler et //linker// avec la bonne version de MPI.
  
 +Compilation : <code bash>mpicc hello.c -o hello</code>
  
  
 +===== Script pour lancer un programme MPI sur un seul noeud =====
  
-===== Script pour lancer un programme MPI sur un noeud =====+SLURM est fait pour fonctionner avec MPI. Par défaut, il lancera autant de processus que de cœurs réservés avec l'option ''<nowiki>--ntasks</nowiki>''.  
 +Le script suivant exécute le programme précédent sur un seul noeud :
  
-SLURM est fait pour fonctionner avec MPI. Par défaut, il lancera autant de processus que de cœurs disponibles.  
- 
-Remarque : On peut utiliser l'option **bind-to-core** de **mpirun** pour attacher les processus MPI sur les cœurs. 
  
 <code bash> <code bash>
Ligne 29: Ligne 28:
  
 # ============= options de sbatch (ici réservation de 32 cores)================== # ============= options de sbatch (ici réservation de 32 cores)==================
-#SBATCH --ntasks=32            # 32 tasks car 32 processus en parallèle+#SBATCH --ntasks=32            # 32 tasks => 32 processus en parallèle
 #SBATCH --ntasks-per-core=1    # on met une seule task par CPU #SBATCH --ntasks-per-core=1    # on met une seule task par CPU
  
Ligne 36: Ligne 35:
  
 </code> </code>
 +Remarque : On peut utiliser l'option **bind-to-core** de **mpirun** pour attacher les processus MPI sur les cœurs.
  
 ===== Script pour lancer un programme MPI en parallèle sur plusieurs noeuds ===== ===== Script pour lancer un programme MPI en parallèle sur plusieurs noeuds =====
 +
 +L'intérêt de la bibliothèque MPI est de pouvoir utiliser plusieurs noeuds en parallèle. Le script suivant montre comment lancer 16 processus en parallèle répartis sur 4 noeuds. Il nécessite de créer au préalable un fichier [[http://fc.isima.fr/~toussain/docWiki/MPI/machine|machine]] qui contient la liste des machines à utiliser par MPI avec le nombre de processus à lancer sur chacune.
 +
 +Les options données à SLURM doivent être cohérentes avec les informations contenues dans le fichier machine.
  
 <code bash> <code bash>
Ligne 55: Ligne 58:
 #total défini dans le fichier machine #total défini dans le fichier machine
  
-#REMARQUE 2 : tous les noeuds surlesquels vont s'exécuter le programme doivent faire partie de la même partition+#REMARQUE 2 : tous les noeuds sur lesquels vont s'exécuter le programme doivent faire partie de la même partition
  
 </code> </code>
mpi.1526380631.txt.gz · Dernière modification : 2018/10/11 20:49 (modification externe)