Почему mpirun не уважает мой выбор BTL?

Я использую Open MPI (1.8.3) на Cygwin на машине Windows 7. Я хотел бы просто запускать коды MPI на этом компьютере, не говоря ни о какой внешней сети. Я понимаю, что я должен был бы ограничить mpirun для себя и обмена памятью через MCA, например:

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

Однако, когда я пытаюсь это сделать, Windows спрашивает меня, хочу ли я создать исключение брандмауэра, указывая, что моя работа пытается поговорить извне о TCP. Кроме того, mpirun будет висеть примерно на одну минуту, прежде чем завершать работу, если и только если я нахожусь в беспроводной сети до завершения мировой работы hello. Если я выключу свою беспроводную карту или переключусь на проводное подключение к сети Ethernet, она завершается примерно на одну секунду, как и ожидалось.

Почему mpirun не соблюдает мой выбор BTL?

    Почему mpirun не соблюдает мой выбор BTL?

    Он определенно соблюдает ваш выбор BTL. Но есть еще одна структура, а именно OOB, которая также использует TCP по умолчанию. Вы должны отключить компонент tcp для обеих фреймворков, чтобы запретить Open MPI полностью использовать TCP:

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

    Обратите внимание, что полное отключение TCP может привести к неожиданным последствиям.

    Для полноты, я хотел бы подробно остановиться на ответе Христо .

    Если страдал от кажущихся случайными сбоев моего программного обеспечения для моделирования. После некоторой детективной работы я узнал, что отказ от сетевых подключений может привести к прерыванию / сбою / сбою MPI.

    Причиной случайных сбоев была хрупкая беспроводная связь, к которой подключен мой ноутбук. Таким образом, когда случайное падение соединения wifi привело к тому, что моя чисто локальная работа закончилась.

    Таким образом, в моей системе я исключил Wi-Fi-сеть (названную wlp3s0 на моей машине Ubuntu как из BTL, так и из OOB. Теперь параллельный запуск продолжает отключать Wi-Fi.

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