TORQUE下的makeMPIcluster:没有足够的可用插槽

时间:2015-12-13 23:08:57

标签: r mpi hpc torque

我正在使用带有TORQUE / MOAB / RHEL 6.7的HPC。 PBS作业中的相关行是

#PBS -l nodes=1:ppn=8,mem=12gb
module load r_3.2.0 
module load icc_14.0.3-ompi_1.8.3
mpirun -np 1\
  --mca mtl mx --mca pml cm --bind-to core --map-by core\
  Rscript >>dice.txt 2>&1 diceEstimate4i_parallel.R

在我的R计划中,我有:

library(Rmpi)
library(snow)
cl <- makeMPIcluster(mpi.universe.size())

我可以看到MPI Universe的大小是正确的(本例中为8),但程序失败并显示错误消息&#34;没有足够的可用插槽。&#34;但是,如果我要求少一个工人,它就能很好地运作:

cl <- makeMPIcluster(mpi.universe.size() - 1)

但是现在我只有7名工作人员(我已经测试过了),所以其中一个处理器内核没有投入任何高效工作......

R CMD config CC

只给我mpicc,我在配置的其余部分找不到任何相关内容。

任何想法如何使用所有已分配的cpu?我是mpirun的初学者,所有这些...我在不同的服务器w / o调度程序上工作。我也能够使用pbdMPI包使用所有已分配的cpus。

1 个答案:

答案 0 :(得分:0)

所以,&#34;官方&#34;回答。现在我已多次测试代码并且它可以工作:

  1. 在没有 mpirun 的作业中调用R.
  2. 检测群集大小并创建MPICluster。
  3. 作业可能看起来像这样:

    module load r_3.2.0 
    module load icc_14.0.3-ompi_1.8.3
    Rscript program.R
    

    和R代码创建集群:

    nodefile <- Sys.getenv("PBS_NODEFILE")
    nodes <- readLines(nodefile)
    cl <- makeMPIcluster(length(nodes), includemaster=TRUE)