Outils pour utilisateurs

Outils du site


mpi:intel-mpi:start

Ceci est une ancienne révision du document !


Voir cette page sous forme de diaporama.

Intel MPI

En cours de rédaction

L'implémentation Intel MPI est la version MPI à utiliser préférentiellement sur CALI. La version actuellement installée est 5.0, qui implémente la norme MPI 3.0.

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

  • 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 Intel True Scale
  • 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 (voir article Fabric)

Avantages de l'architecture True Scale

  • 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

Références

Concernant la librairie Intel MPI :

Configurer votre environnement

  • 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)
  • Le module pour la dernière version stable d'Intel MPI est automatiquement chargé quand vous vous connectez à CALI

Compiler

Pour compiler votre programme MPI, il faut utiliser les commandes mpixxxx, où xxxx est le nom du “vrai” compilateur que vous désirez utiliser. Exemples :

  • mpiifort pour utiliser le compilateur Intel Fortran
  • mpiicc pour utiliser le compilateur Intel C/C++
  • mpigcc pour utiliser le compilateur GNU C

Thread ou pas threads ?

La compilation est faite par défaut avec la librairie MPI threadée.

Avec OpenMP

  • Vous pouvez utiliser des appels MPI à l'intérieur de sections OpenMP
  • Mais vous devez dans ce cas précis utiliser la version thread-safe de la librairie MPI via -mt_mpi
  • 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

Exécuter

  • 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
  • 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-mpi

Plus de détails

  • L'article Fabric indique comment la librairie Intel MPI sélectionne la Fabric
mpi/intel-mpi/start.1434546681.txt.gz · Dernière modification: 2015/06/17 15:11 de montap01