====== 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