OpenMPI

Il est nécessaire d’utiliser la version d’openmpi qui va avec le compilateur utilisé pour votre application : si vous compilez avec icc, utilisez une version icc d’Openmpi

Généralités

Quelque soit la version d’openmpi, il est souhaitable de modifier la taille dédiée à la pile :

ulimit -s 10240

Openmpi - Version 2.0.2

8 modules fournis : 2 compilateurs (gnu et icc) X multithreading on/off X ilp64 on/off

Exemple :

module purge
module load openmpi/gnu/mt/2.0.2.10
ulimit -s 10240
srun ...

Openmpi - Version 3.0.2

3 modules fournis : Un module par compilateur (gnu, icc, pgi). Tous les modules proposent une version "Multitheadée" d’openmpi. La version ilp64 n’est pas proposée dans cette version.

Mode d’utilisation cuda-aware mpi

Dans ce mode, disponible sur les versions 3 d’openmpi mais non activé par défaut, les gpus sont capables de communiquer directement entre eux sans passer par les cpus. A l’intérieur d’un nœud ces communications utilisent les liens nvlink. Les communications sont donc plus rapides et le code est plus performant. Pour utiliser ce mode, il est nécessaire de :

  1. désactiver le mode de communication mxm
  2. activer explicitement le mode "cuda-aware"
module purge
module load openmpi/gnu/3.0.2 cuda/9.1.85.3
ulimit -s 10240
export OMPI_MCA_mtl=^mxm
export OMPI_MCA_pml=^yalla
export OMPI_MCA_mpi_cuda_support=1
srun ./mon-appli-gpu

 

Voir aussi

FAQ

Questions fréquentes et messages d'erreurs

Comment demander de l’aide ?

Si votre job se plante sans que vous sachiez pourquoi, ou de manière générale si quelque chose ne fonctionne pas comme prévu, comment faire ?