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