Назад | Перейти на главную страницу

Задание MPI зависает только на одном конкретном узле

Я предваряю это примечанием, что я (больше не системный администратор) - я ученый, но я пытаюсь помочь нашим системным администраторам. Поэтому я не могу сразу попробовать то, что требует изменения оборудования или использования sudo, но предоставлю как можно больше информации в меру своих возможностей.

Я пытаюсь запустить программу foo, написанную на Фортране и скомпилированную с PGI и MPICH, на 8 узлах с использованием MPI (узлы называются node01, node02 и т. Д.). У каждого узла 8 ядер, и я пытаюсь использовать их все. Проблема в том, что node08 не очень хорошо работает с остальными, и я не совсем уверен, почему. Чтобы избавиться от простых вещей, ssh, передача файлов и т. Д. Отлично работает между node08 и всеми другими узлами, я установил беспарольный ssh ​​между всеми узлами (и он работает на node08), исполняемый файл mpi такой же, и все работает при использовании всех других узлов (это тоже не количество ядер - вы запускаете 16 ядер между node06 и node07, и он работает нормально, вы запускаете такое же количество ядер между node07 и node08, и он терпит неудачу).

Ниже показано, как я выполняю свои задания (я пробовал то же самое с mpiexec), и я покажу пример вывода MPI для каждого из них. Версия mpich - 1.4.1 и совместима на разных машинах. Кроме того, оба они были запущены с node07 с изменением только файла machs, чтобы включить node06 или node08.

mpiexec.hydra -iface eth1 -verbose -machinefile machs -np 16 ./executable

Когда я запускаю эту команду через node07 и node08, я получаю следующий вывод MPI непосредственно перед тем, как он зависнет (чтобы было ясно, он зависает на 100% CPU на всех ядрах на обоих узлах; также я заблокировал IP-адреса и kvsname ):

[mpiexec@node07] [pgid: 0] got PMI command: cmd=get kvsname=kvs_xx14_0 key=P0-businesscard
[mpiexec@node07] PMI response to fd 7 pid 5: cmd=get_result rc=0 msg=success value=description#""$port#38204$ifname#xx.xx.xx.7$
[proxy:0:1@node08] got pmi command (from 5): get
kvsname=kvs_xx14_0 key=P0-businesscard
[proxy:0:1@node08] forwarding command (cmd=get kvsname=kvs_xx14_0 key=P0-businesscard) upstream
[proxy:0:1@node08] got pmi command (from 7): get
kvsname=kvs_xx14_0 key=P0-businesscard
[proxy:0:1@node08] forwarding command (cmd=get kvsname=kvs_xx14_0 key=P0-businesscard) upstream
[proxy:0:1@node08] got pmi command (from 10): get
kvsname=kvs_xx14_0 key=P0-businesscard
[proxy:0:1@node08] forwarding command (cmd=get kvsname=kvs_xx14_0 key=P0-businesscard) upstream
[proxy:0:1@node08] got pmi command (from 16): get
kvsname=kvs_xx14_0 key=P0-businesscard
[proxy:0:1@node08] forwarding command (cmd=get kvsname=kvs_xx14_0 key=P0-businesscard) upstream
[mpiexec@node07] [pgid: 0] got PMI command: cmd=get kvsname=kvs_xx14_0 key=P0-businesscard
[mpiexec@node07] PMI response to fd 7 pid 7: cmd=get_result rc=0 msg=success value=description#""$port#38204$ifname#xx.xx.xx.7$
[proxy:0:1@node08] we don't understand the response get_result; forwarding downstream
[mpiexec@node07] [pgid: 0] got PMI command: cmd=get kvsname=kvs_xx14_0 key=P0-businesscard
[mpiexec@node07] PMI response to fd 7 pid 10: cmd=get_result rc=0 msg=success value=description#""$port#38204$ifname#xx.xx.xx.7$
[mpiexec@node07] [pgid: 0] got PMI command: cmd=get kvsname=kvs_xx14_0 key=P0-businesscard
[mpiexec@node07] PMI response to fd 7 pid 16: cmd=get_result rc=0 msg=success value=description#""$port#38204$ifname#xx.xx.xx.7$
[proxy:0:1@node08] we don't understand the response get_result; forwarding downstream
[proxy:0:1@node08] we don't understand the response get_result; forwarding downstream
[proxy:0:1@node08] we don't understand the response get_result; forwarding downstream

При запуске той же команды через node06 и node07 я получаю это там, где висит предыдущая.

[proxy:0:1@node07] got pmi command (from 22): get
kvsname=kvs_xxx00_0 key=P0-businesscard
[proxy:0:1@node07] forwarding command (cmd=get kvsname=kvs_xxx00_0 key=P0-businesscard) upstream
[mpiexec@node07] [pgid: 0] got PMI command: cmd=get kvsname=kvs_xxx00_0 key=P0-businesscard
[mpiexec@node07] PMI response to fd 6 pid 22: cmd=get_result rc=0 msg=success value=description#""$port#48883$ifname#xxx.xx.xx.6$
[proxy:0:1@node07] got pmi command (from 6): get
kvsname=kvs_xxx00_0 key=P0-businesscard
[proxy:0:1@node07] forwarding command (cmd=get kvsname=kvs_xxx00_0 key=P0-businesscard) upstream
[mpiexec@node07] [pgid: 0] got PMI command: cmd=get kvsname=kvs_xxx00_0 key=P0-businesscard
[mpiexec@node07] PMI response to fd 6 pid 6: cmd=get_result rc=0 msg=success value=description#""$port#48883$ifname#xxx.xx.xx.6$
[proxy:0:1@node07] we don't understand the response get_result; forwarding downstream
[proxy:0:1@node07] got pmi command (from 11): get
kvsname=kvs_xxx00_0 key=P0-businesscard
[proxy:0:1@node07] forwarding command (cmd=get kvsname=kvs_xxx00_0 key=P0-businesscard) upstream
[proxy:0:1@node07] got pmi command (from 16): get
kvsname=kvs_xxx00_0 key=P0-businesscard
[proxy:0:1@node07] forwarding command (cmd=get kvsname=kvs_xxx00_0 key=P0-businesscard) upstream
[mpiexec@node07] [pgid: 0] got PMI command: cmd=get kvsname=kvs_xxx00_0 key=P0-businesscard
[mpiexec@node07] PMI response to fd 6 pid 11: cmd=get_result rc=0 msg=success value=description#""$port#48883$ifname#xxx.xx.xx.6$
[proxy:0:1@node07] we don't understand the response get_result; forwarding downstream
[mpiexec@node07] [pgid: 0] got PMI command: cmd=get kvsname=kvs_xxx00_0 key=P0-businesscard
[mpiexec@node07] PMI response to fd 6 pid 16: cmd=get_result rc=0 msg=success value=description#""$port#48883$ifname#xxx.xx.xx.6$
[proxy:0:1@node07] we don't understand the response get_result; forwarding downstream
[proxy:0:1@node07] we don't understand the response get_result; forwarding downstream

Для ясности - этот код отлично работает на всех остальных машинах, которые у нас есть, и это не проблема ни в одном другом развертывании, которое мы пробовали - только в этом. Кроме того, я должен отметить, что IP-адреса узлов соответствуют их номеру узла, поэтому xx.xx.xx.7 - node07, xx.xx.xx.8 - node08 и т. Д. просто node08 на всех 8 ядрах работает нормально, проблема возникает при использовании любых ядер на node08 с любыми ядрами на любой другой машине.

Отредактировано для добавления: ssh - это программа запуска (и единственная, к которой у нас есть доступ).