Pourquoi mpirun ne respecte-t-il pas mon choix de BTL?

J’utilise Open MPI (1.8.3) sur Cygwin sur un ordinateur Windows 7. Je voudrais exécuter des codes MPI sur cette machine exclusivement, sans parler à aucun réseau externe. Je comprends que je devrais être capable de restreindre mpirun aux mpirun auto-partagées et à la mémoire partagée en utilisant les options MCA comme ceci:

 mpirun -n 8 --mca btl sm,self ./hello.exe 

Cependant, lorsque j’essaie, Windows me demande si je souhaite créer une exception de pare-feu, indiquant que mon travail tente de communiquer en externe via TCP. De plus, mpirun attendra environ une minute avant de terminer si et seulement si je suis connecté à un réseau sans fil avant la fin du travail hello world. Si j’éteins ma carte sans fil ou si je passe à une connexion Ethernet câblée, la connexion prend environ une seconde, comme prévu.

Pourquoi mpirun n’observe-t- mpirun pas mon choix de BTL?

Pourquoi mpirun n’observe-t- mpirun pas mon choix de BTL?

Il est clair que vous observez votre choix de BTL. Mais il existe un autre cadre, à savoir OOB, qui utilise également TCP par défaut. Vous devez désactiver le composant tcp pour les deux frameworks afin d’empêcher Open MPI d’utiliser complètement le protocole TCP:

 mpirun -n 8 --mca btl ^tcp --mca oob ^tcp ... 

Notez que la désactivation complète de TCP peut avoir des effets inattendus.

Pour être complet, j’aimerais développer la réponse de Hristo .

Si souffrait de crashs apparemment aléatoires de mon logiciel de simulation. Après quelques travaux de détective, j’ai découvert que l’abandon des connexions réseau peut entraîner l’abandon / l’échec / le blocage de MPI.

La cause des accidents aléatoires était un réseau sans fil fragile auquel mon ordinateur portable était connecté. Ainsi, lorsque la chute occasionnelle de la connexion wifi a entraîné la fin de mon travail purement local.

Ainsi, sur mon système, j’ai exclu le réseau wifi (nommé wlp3s0 sur ma machine Ubuntu de BTL et OOB). À présent, le fonctionnement en parallèle survit à la désactivation du wifi.

 mpirun --mca oob_tcp_if_exclude wlp3s0 --mca btl_tcp_if_exclude wlp3s0 -np 2 someApplication