OpenMPI

Pour utiliser OenMPI, il faut tout d’abord charger un des modules suivant :

openmpi/1.10.7-gcc-9.2.0-slurm   
openmpi/1.6.5-gcc-4.8.5          
openmpi/1.8.8-gcc-4.8.5          
openmpi/2.0.2-gcc-4.8.5          
openmpi/2.0.2-gcc-4.8.5-32bits   
openmpi/2.1.5-gcc-8.2.0          
openmpi/2.1.6-gcc-9.2.0-slurm    
openmpi/3.0.5-gcc-9.2.0-slurm    
openmpi/3.1.2-gcc-8.2.0          
openmpi/3.1.2-gcc-8.2.0-dsa      
openmpi/3.1.2-intel-17.0.8       
openmpi/3.1.3-orca-gcc-4.8.5     
openmpi/3.1.4-gcc-7.3.0          
openmpi/3.1.5-gcc-9.2.0-slurm
openmpi/4.0.3-gcc-9.2.0-dsa
openmpi/openmpi-2.0.4-gcc-4.8.5
openmpi/openmpi-3.1.2-gcc-4.8.5

Utiliser ifort

Pour compiler un code avec OpenMPI et ifort, une fois les modules chargés, vérifiez que vous avez la variable suivante :

export OMPIFC=ifort

Optimisation de la communication

Ces valeurs sont paramètrés dans les modules, mais en cas de soucis de communication, vérifiez-les.

Pour CLUSTER - xeonv1/v2/v3/v4/v5/v6 - xeonv3_mono - xeonv4_mono - xeonv5_mono - napab :

export OMPI_MCA_btl_tcp_if_exclude="10.1.0.0/16,10.3.0.0/16,10.4.0.0/16"
export OMPI_MCA_btl="self,sm,tcp"

Pour xeonv1_mono - xeonv2_mono - sv6 :

export OMPI_MCA_btl_tcp_if_exclude="10.1.0.0/16,10.2.0.0/16,10.4.0.0/16"
export OMPI_MCA_btl="self,sm,tcp"

Pour moonshot :

export OMPI_MCA_btl_tcp_if_exclude="10.2.0.0/16,10.3.0.0/16,10.4.0.0/16"
export OMPI_MCA_btl="self,sm,tcp"

Avec les OpenMPI récents ( version >= 3.1 ) :

export OMPI_MCA_btl="vader,self,tcp"

slurm

Utiliser mpirun plutôt que srun