Ведомые узлы Rmpi ​​исчезают в OpenMPI 2.1.5 - PullRequest
0 голосов
/ 31 мая 2019

Когда я использую Rmpi, связанный с OpenMPI 4.0.1, я могу успешно запустить небольшой сценарий hello world, который распределяет вычисления по кластеру.

Однако при связывании с OpenMPI 2.1.5 я получаю этоошибка:

Error in mpi.comm.spawn(slave = system.file("Rslaves.sh", package = "Rmpi"),  :
  MPI_ERR_SPAWN: could not spawn processes
Calls: mpi.spawn.Rslaves -> mpi.comm.spawn
Execution halted
-------------------------------------------------------
Primary job  terminated normally, but 1 process returned
a non-zero exit code.. Per user-direction, the job has been aborted.
-------------------------------------------------------
--------------------------------------------------------------------------
mpirun detected that one or more processes exited with non-zero status, thus causing
the job to be terminated. The first process to do so was:

  Process name: [[13712,1],0]
  Exit code:    1
--------------------------------------------------------------------------

Пакет Rmpi ​​содержит Rslaves.sh, который фактически просто вызывает Rscript slavedaemon.R, который, в свою очередь, оценивает коды, отправленные с главного узла ( source ).

Я вижу, что slavedaemon.R запускается на подчиненном узле, но когда он пытается загрузить пакет Rmpi, ведомое устройство просто исчезает .Под этим я подразумеваю:

  1. library(Rmpi) не возвращается.
  2. Нет сообщений, зарегистрированных для стандартного выхода или стандартной ошибки.
  3. Команды в Rslaves.shпосле того, как вызов slavedaemon.R не выполнен (даже если +e)

Я подтвердил, что путь поиска библиотеки R является правильным на подчиненном узле, и я успешно вызвал slavedaemon.R вручную нет подчиненного узла, и он не аварийно завершился.


Существует ли очевидная причина, почему это происходит с OpenMPI 2.1.5, а не 4.0.1, а не при загрузке вручную?

Если нет, есть ли способ отладки того, что происходит с подчиненными узлами, поскольку я не могу проверить состояние после того, как они пытаются загрузить Rmpi?


Согласно straceпохоже, что orted отправляет SIGCONT, затем SIGTERM, но я не знаю почему.

...