我正在使用 Rmpi (v. 0.6-2) 包来并行化我的 R (v. 2.15) 代码。我有以下代码和平:
library(Rmpi)
source("slaveFunction04.r")
mpi.spawn.Rslaves(nslaves=2)
mpi.bcast.Robj2slave(slaveFunction04)
mpi.remote.exec(slaveFunction04())
mpi.close.Rslaves()
mpi.quit()
当从属正在执行 slaveFunction04 时,我希望主进程处于空闲状态,消耗很少的资源,就像您将 MPI 与 C 或 Fortran 一起使用时那样。但是相反,主进程消耗 100% 的 CPU,就像从属进程一样(每个进程都在自己的内核中运行)。
知道为什么会发生这种情况,我该如何解决?
对于 MPI,我在 OpenSuse 12.3 上使用 OpenMPI v. 1.6-3.1.2。
提前致谢。