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

mpiexec не запускает скрипт mpi4py, когда два хоста используются в кластере MPI, установленном через локальную сеть

Итак, у меня есть другой настольный компьютер, который служит моим сервером, primesystem и ноутбук в качестве моего клиента, zerosystem что с этим связано. Они оба служат мне ssh-server и ssh-client соответственно, и подключается через Ethernet-кабель (не перекрестный).

Я оба следовал инструкциям, изложенным в этих уроках: Запуск кластера MPI в локальной сети и Настройка кластера MPICH2 в Ubuntu, только то, что я хотел бы использовать реализацию MPI python, поэтому я вместо этого использовал mpi4py чтобы проверить, могут ли оба ПК использовать MPI.

Я создал каталог /cloud в primesystem который будет использоваться в моей сети, и он установлен в моем zerosystem, как указано в первом руководстве (так что я мог также работать в обеих системах без необходимости входить в систему через ssh).

На сервере или primesystem, если я запустил образец скрипта helloworld, он будет работать нормально:

one@primesystem:/cloud$ mpirun -np 5 -hosts primesystem python -m mpi4py helloworld
Hello, World! I am process 0 of 5 on primesystem.
Hello, World! I am process 1 of 5 on primesystem.
Hello, World! I am process 2 of 5 on primesystem.
Hello, World! I am process 3 of 5 on primesystem.
Hello, World! I am process 4 of 5 on primesystem.

То же самое, если я пропущу его через хост zerosystem (но следует отметить заметную задержку выполнения из-за использования внешнего процессора из zerosystem):

one@primesystem:/cloud$ mpirun -np 5 -hosts zerosystem python -m mpi4py helloworld
Hello, World! I am process 0 of 5 on zerosystem.
Hello, World! I am process 1 of 5 on zerosystem.
Hello, World! I am process 2 of 5 on zerosystem.
Hello, World! I am process 3 of 5 on zerosystem.
Hello, World! I am process 4 of 5 on zerosystem.

Но если я использовал два хоста, похоже, он вообще не отвечает:

one@primesystem:/cloud$ mpirun -np 5 -hosts primesystem,zerosystem python -m mpi4py helloworld
Hello, World! I am process 0 of 5 on primesystem.

(Если я поменял местами порядок хостов, zerosystem будучи первым, ответ Hello World не отображается)

Я пробовал вводить списки хостов в .mpi-config файл и соответствующие процессы для создания, затем с помощью -f параметр вместо -hosts

zerosystem:4
primesystem:2

но он по-прежнему получает тот же ответ, и через несколько секунд или минут это вывод ошибки:

one@primesystem:/cloud$ mpirun -np 6 -f .mpi-config python -m mpi4py helloworld
===================================================================================
=   BAD TERMINATION OF ONE OF YOUR APPLICATION PROCESSES
=   PID 23329 RUNNING AT primesystem
=   EXIT CODE: 139
=   CLEANING UP REMAINING PROCESSES
=   YOU CAN IGNORE THE BELOW CLEANUP MESSAGES
===================================================================================
[proxy:0:1@zerosystem] HYD_pmcd_pmip_control_cmd_cb (pm/pmiserv/pmip_cb.c:886): assert (!closed) failed
[proxy:0:1@zerosystem] HYDT_dmxu_poll_wait_for_event (tools/demux/demux_poll.c:76): callback returned error status
[proxy:0:1@zerosystem] main (pm/pmiserv/pmip.c:206): demux engine error waiting for event
[mpiexec@primesystem] HYDT_bscu_wait_for_completion (tools/bootstrap/utils/bscu_wait.c:76): one of the processes terminated badly; aborting
[mpiexec@primesystem] HYDT_bsci_wait_for_completion (tools/bootstrap/src/bsci_wait.c:23): launcher returned error waiting for completion
[mpiexec@primesystem] HYD_pmci_wait_for_completion (pm/pmiserv/pmiserv_pmci.c:218): launcher returned error waiting for completion
[mpiexec@primesystem] main (ui/mpich/mpiexec.c:336): process manager error waiting for completion

Почему это? Любые идеи?