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

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.

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

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 :

Environnement pour MPI

  • 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

TODO

FIXME

Thread safe version de la lib MPI : -mt_mpi . A utiliser avec la MKL par exemple ⇒ à vérifier

Fabric utilisées :

$ 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