Lancement des processus MPI

Cet article indique comment sont lancés les processus MPI sous Slurm

Références

Processus MPI

Principe : rappel

  • Le modèle de programmation MPI implique le lancement et la mise en communication de plusieurs processus différents
  • Les processus peuvent éventuellement être répartis sur des serveurs différents

Problème

Se pose le problème de savoir

  • qui (quel programme) va lancer les processus MPI
  • comment sera déterminé la liste des machines à utiliser, et le nombre de processus à exécuter sur chacune
  • quel mécanisme sera utilisé pour exécuter les processus sur des machines distantes
  • à quelle vitesse ce mécanisme se déroule (les gros cluster comportant plusieurs centaines ou milliers de nœuds)

Intégration avec l'ordonnanceur

  • Sur un cluster, les ressources, donc la liste des noeuds à utiliser, sont allouées dynamiquement par l'ordonnanceur
  • L'ordonnanceur dispose déjà d'un mécanisme de lancement de processus sur les noeuds

Les librairies MPI et les ordonnanceurs (slurm et d'autres) ont essayé de converger pour apporter une certaine intégration…

Interface PMI

  • PMI = Process Management Interface
  • Couche logicielle permettant la communication entre la librairie MPI et l'ordonnanceur

Avec slurm

  • Plusieurs modes d'intégration sont possibles entre les librairies MPI et slurm
  • Le mode choisi est
    • d'utiliser PMI fourni par slurm
    • et slurm sera le Process Manager (contrôle des processus)
  • Pour Intel MPI, le choix de la librairie PMI est indiqué via la variable d'environnement I_MPI_PMI_LIBRARY positionné par le module