Одиночный спавн зависает с OpenMpi 4.0.1 - PullRequest
0 голосов
/ 09 октября 2019

Создает процессы в одиночном (то есть без команды mpirun) зависании, а затем выдает ошибку, когда я пытаюсь выделить процессы с помощью клавиши "add-host" в функции MPI_Info_set.

Я начал некоторый тест сOpenmpi 4.0.1 с Ubuntu 18.04. У меня есть две машины, одна локальная («ведущая»), другая удаленная («ведомая»). И с этой Ubuntu, и с NFS (сетевой файловой системой) для совместного использования сборки openmpi и запуска сценариев. Я установил ssh соединение с ключом (т.е. без пароля) для моего пользователя, который находится на обеих машинах. Некоторые базовые тесты (сценарий hello.c, предоставляемый tar-архивом openmpi) запускаются нормально локально и удаленно с mpirun. Но мне нужно запустить скрипт без mpirun и сгенерировать с помощью spawn некоторые процессы, но когда я пытаюсь использовать MPI_Info_set с ключом «add-host», MPI_Comm_spawn () зависает и дает сбой. Я пытаюсь использовать другой метод размещения и работает нормально (пример A, ниже)

Мой файл хост-файла содержит только это:

localhost slots=4

slave1 slots=4

Как я уже говорил, я тестировал два отдельных случая:

Случай A (запускается с hosfile):

MPI_Info_set( info, "add-hostfile", "hostfile" );

MPI_Info_set( info, "npernode", "3" );

И я запускаю 6 процессов (т.е. MPI_Comm_spawn () получает 6 процессов для запуска и 3 на узел, как показано выше):

$ ./dynamic.o

Работает нормально: 4 - локальный, а 3 - удаленный

Случай B (без хост-файла и того, что я хочу)

MPI_Info_set( info, "add-host", "slave1,slave1,slave1,slave1" );

И я запускаю 4 процесса, как указано выше:

$ ./dynamic.o

Он зависает, но я вижу, что с Top one запущены процессы на локальном и 4 на удаленном (slave1), но я думаю, что это нормально. Через некоторое время он выдает следующее:

“A request has timed out and will therefore fail:

Operation: LOOKUP: orted/pmix/pmix_server_pub.c:345

Your job may terminate as a result of this problem. You may want to
adjust the MCA parameter pmix_server_max_wait and try again. If this
occurred during a connect/accept operation, you can adjust that time
using the pmix_base_exchange_timeout parameter.
--------------------------------------------------------------------------
[master:22881] *** An error occurred in MPI_Comm_spawn
[master:22881] *** reported by process [63766529,0]
[master:22881] *** on communicator MPI_COMM_WORLD
[master:22881] *** MPI_ERR_UNKNOWN: unknown error
[master:22881] *** MPI_ERRORS_ARE_FATAL (processes in this communicator will now abort,
[master:22881] *** and potentially your MPI job)”

Я снова смотрю с Top и нет никаких запущенных процессов.

...