Outils pour utilisateurs

Outils du site


mpi:intel-mpi:start

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édentes Révision précédente
Prochaine révision
Révision précédente
mpi:intel-mpi:start [2015/06/05 17:59]
montap01 [Thread ou pas threads ?]
mpi:intel-mpi:start [2022/09/14 18:25] (Version actuelle)
montap01 [Intel MPI]
Ligne 1: Ligne 1:
 ~~SLIDESHOW yatil~~ ~~SLIDESHOW yatil~~
 ====== Intel MPI ====== ====== Intel MPI ======
-L'implémentation Intel MPI est la version MPI à utiliser préférentiellement sur CALI. La version actuellement installée est la version 5.0, qui implémente la norme MPI 3.0.+<note warning>En partie obsolète suite à la migration CALI2-B (2022)</note> 
 +L'implémentation Intel MPI <del>est</del> était la version MPI à utiliser préférentiellement sur CALI. La version utilisée par défaut est la version 5.0, qui implémente la norme MPI 3.0. 
 + 
 +===== Références ===== 
 +Concernant la librairie Intel MPI : 
 +  * La documentation de référence est disponible chez Intel : https://software.intel.com/en-us/articles/intel-mpi-library-documentation 
 +  * Vous pouvez aussi la consulter sur CALI : http://cali2.unilim.fr/intel-mpi/Doc_Index.html
  
 ===== Réseau Infiniband ===== ===== Réseau Infiniband =====
-Pour comprendre pourquoi il est préférable d'utiliser Intel MPI, il faut connaître le réseau Infiniband de notre cluster+Pour comprendre pourquoi il <del>est</del> était préférable d'utiliser Intel MPI, il faut connaître [[:materiel-cali2#reseau_infiniband | le réseau Infiniband de notre cluster]]
   * Les cartes de connexion au réseau Infiniband sont des //Host Channel Adapter// (HCA) ''QLogic IBA7322 QDR'' et le commutateur est un Intel True Scale 12300   * Les cartes de connexion au réseau Infiniband sont des //Host Channel Adapter// (HCA) ''QLogic IBA7322 QDR'' et le commutateur est un Intel True Scale 12300
   * Ce réseau est basé sur l'architecture [[http://www.intel.com/content/www/us/en/infiniband/truescale-infiniband.html | Intel True Scale]]   * Ce réseau est basé sur l'architecture [[http://www.intel.com/content/www/us/en/infiniband/truescale-infiniband.html | Intel True Scale]]
   * Pour obtenir la meilleure performance sur ce réseau, il faut utiliser la couche logicielle //Performance Scaled Messaging// (PSM)   * Pour obtenir la meilleure performance sur ce réseau, il faut utiliser la couche logicielle //Performance Scaled Messaging// (PSM)
-  * La librairie Intel MPI est configurée pour utiliser PSM+  * La librairie Intel MPI est configurée pour utiliser PSM (voir article [[Fabric]]) 
 + 
 +<note warning> 
 +Depuis la migration en version CALI2-B (2022), les cartes Infiniband sont mal supportées et le mode ''PSM'' optimisé n'est plus disponible  
 +</note>
  
 ==== Avantages de l'architecture True Scale ==== ==== Avantages de l'architecture True Scale ====
   * Fonctionne en mode non connecté, assurant ainsi une plus faible latence   * Fonctionne en mode non connecté, assurant ainsi une plus faible latence
   * Optimisation grâce à PSM, plus performant que la librairie //verbs// traditionnelle utilisée précédemment en Infiniband   * Optimisation grâce à PSM, plus performant que la librairie //verbs// traditionnelle utilisée précédemment en Infiniband
-===== Références ===== +===== Configurer votre environnement=====
-Concernant la librairie Intel MPI : +
-  * La documentation de référence est disponible chez Intel : https://software.intel.com/en-us/articles/intel-mpi-library-documentation +
-  * Vous pouvez aussi la consulter sur CALI : http://cali2.unilim.fr/intel-mpi/Doc_Index.html +
- +
-===== Environnement pour MPI =====+
   * L'environnement pour utiliser les librairies MPI est paramétré sur CALI à travers des [[:modules]]   * L'environnement pour utiliser les librairies MPI est paramétré sur CALI à travers des [[:modules]]
   * Vous ne devez donc pas suivre la documentation d'Intel concernant la configuration de votre environnement (n'utilisez pas ''mpivars.sh'')   * Vous ne devez donc pas suivre la documentation d'Intel concernant la configuration de votre environnement (n'utilisez pas ''mpivars.sh'')
Ligne 26: Ligne 31:
 ===== Compiler ===== ===== Compiler =====
 Pour compiler votre programme MPI, il faut utiliser les commandes ''mpi//xxxx//'', où ''//xxxx//'' est le nom du "vrai" compilateur que vous désirez utiliser. Exemples : Pour compiler votre programme MPI, il faut utiliser les commandes ''mpi//xxxx//'', où ''//xxxx//'' est le nom du "vrai" compilateur que vous désirez utiliser. Exemples :
-  * ''mpiifort'' pour utiliser le compilateur Intel Fortran +  * ''mpiifort'' pour utiliser le compilateur Intel Fortran ''ifort'' 
-  * ''mpiicc'' pour utiliser le compilateur Intel C/C%%++%%+  * ''mpiicc'' pour utiliser le compilateur Intel C/C%%++%% ''icc''
   * ''mpigcc'' pour utiliser le compilateur GNU C   * ''mpigcc'' pour utiliser le compilateur GNU C
  
Ligne 38: Ligne 43:
   * Notez bien que ce cas ne concerne pas les codes ayant des sections OpenMP dans des processus MPI sans appel MPI à l'intérieur de ces sections   * Notez bien que ce cas ne concerne pas les codes ayant des sections OpenMP dans des processus MPI sans appel MPI à l'intérieur de ces sections
  
-===== TODO ===== +===== Exécuter ===== 
-FIXME  +  * Sur notre cluster, l'exécution du code MPI est prise en charge par la commande ''srun'' 
- +  * Au sein d'un fichier batch, la commande trouvera automatiquement le nombre adéquat de processus à lancer, en fonction des ressources demandées 
-Thread safe version de la lib MPI : -mt_mpi . A utiliser avec la MKL par exemple => à vérifier+  * L'environnement est configuré via les //module// pour qu'Intel MPI utilise la librairie PMI (Process Management Interface) de slurm (variable ''I_MPI_PMI_LIBRARY''
 +==== Fichier batch ==== 
 +Un exemple de fichier batch est disponible sur [[:slurm:slurm-mpi]] 
 +===== Plus de détails =====
  
-//Fabric// utilisées :  +  * L'article [[Fabric]] indique comment la librairie Intel MPI sélectionne la Fabric
-  $ echo $I_MPI_FABRICS +
-  shm:tmi+
  
-PSM est un TMI Provider. Sélectionné via la configuration du fichier ''/opt/software/intel/impi_latest/etc64/tmi.conf'' 
  
-  * Pourquoi ne pas utiliser DAPL ? 
-  * Est-ce que le RDMA fonctionne ? 
mpi/intel-mpi/start.1433519994.txt.gz · Dernière modification: 2015/06/05 17:59 de montap01