RMPI从节点在OpenMPI 2.1.5上消失

时间:2019-05-30 23:48:43

标签: r mpi openmpi

当我使用链接到OpenMPI 4.0.1的Rmpi时,我可以成功运行一个小的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,但我不知道为什么。

0 个答案:

没有答案