Outils pour utilisateurs

Outils du site


mpi:openmpi-vs-intelmpi

Librairies MPI disponibles, réseau Infiniband

Deux familles de librairies MPI sont mises à disposition : OpenMPI et Intel MPI

Avertissement

Une partie des noeuds du cluster est relié par un réseau haute performance Infiniband, de technologie QLogic TrueScale ou Intel Infinipath. Cette technologie a été abandonnée par Intel, et mal supportée à l'heure actuelle.

La meilleure façon de faire fonctionner ce réseau consiste à utiliser une API appelée psm. Hors elle ne fonctionne pas sur CALI2-B. Il faut alors se “rabattre” soit sur l'API verbs, soit sur le mode tcp.

OpenMPI

Trois versions sont disponibles :

  • celle livrée par AlmaLinux 8 – à charger avec module load mpi/openmpi-x86_64
  • deux versions (3.1 et 4.1) recompilées – à charger avec module load mpi/openmpi/3.1.6 ou mpi/openmpi/4.1.2

La configuration qui semble optimale avec OpenMPI est d'utiliser la couche PML ucx – par exemple en positionnant la variable suivante dans vos jobs slurm :

export OMPI_MCA_pml=ucx 

Si vous avez besoin de déboguer la couche OpenMPI, vous pouvez ajouter ces variables :

export OMPI_MCA_pml_base_verbose=10
export OMPI_MCA_mtl_base_verbose=10
export OMPI_MCA_btl_base_verbose=10

Intel MPI

Avertissement La librairie Intel MPI semble moins efficace qu'OpenMPI en l'absence de support de psm. A tester pour votre code.

Plusieurs versions sont disponibles :

  • les ancienns versions de CALI2 sont toujours disponibles – voir les versions avec module avail mpi/impi
  • une version issue de OneAPI est aussi disponible : module load mpi/2021.3.0

Pour utiliser verbs, vous devez positionner la variable suivante (par exemple dans vos jobs slurm) :

export FI_PROVIDER=verbs
# Et si vous voulez avoir des informations de "debogage":
export FI_LOG_LEVEL=99
export I_MPI_DEBUG=4 
mpi/openmpi-vs-intelmpi.txt · Dernière modification: 2022/09/14 18:19 de montap01