我正在使用带有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。
答案 0 :(得分:0)
所以,&#34;官方&#34;回答。现在我已多次测试代码并且它可以工作:
作业可能看起来像这样:
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)