====== MPI ======
==== Multirail ====
Sur de l'OmniPath :
* pour le désactiver : export PSM2_MULTIRAIL=0
* pour l'activer : export PSM2_MULTIRAIL=1 On trouve aussi PSM2_MULTIRAIL_MAP=0:1,1:1 mais ça ne semble pas être nécessaire.
Sources :
* [[https://www.open-mpi.org/faq/?category=opa]]
* [[https://www.intel.com/content/www/us/en/developer/articles/technical/tuning-the-intel-mpi-library-basic-techniques.html]]
==== Mutlicartes ====
Pour savoir quelles sont les cartes utilisées :
export PSM2_TRACEMASK=0x2
Pour indiquer quelle(s) carte(s) utiliser (sans qu'il soit question de multirail) :
export HFI_UNIT=0
export HFI_UNIT=1
export HFI_UNIT=0,1
==== Préciser des paramètres MCA ====
Pour connaître tous les paramètres possibles :
ompi_info -a | less
Pour définir les paramètres :
mpirun --mca coll_tuned_use_dynamic_rules 1 --mca coll_tuned_alltoallv_algorithm 1 ...
Ou bien avec une variable d'environnement :
export OMPI_MCA_coll_tuned_use_dynamic_rules=1
Sources :
* [[https://medium.com/@esaliya/choosing-a-specific-collective-algorithm-implementation-in-openmpi-d96ccc8aa9e7|Choosing a Specific Collective Algorithm Implementation in OpenMPI]]
* [[https://www.open-mpi.org/faq/?category=tuning#setting-mca-params|OpenMPI FAQ: General run-time tuning - How do I set the value of MCA parameters?]]
==== Problèmes PSM2 ====
Si PSM2 râle en disant ''Exhausted 1048576 MQ irecv request descriptors, which usually indicates a user program error or insufficient request descriptors (PSM2_MQ_RECVREQS_MAX=1048576)'', il faut positionner une variable d'environnement ([[https://github.com/nwchemgit/nwchem/issues/284|source]]) :
export PSM2_MEMORY=large