【发布时间】:2016-03-19 08:57:06
【问题描述】:
我正在使用具有 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),但程序失败并显示错误消息“没有足够的可用插槽”。但是,如果我要求少一名工人,效果会很好:
cl <- makeMPIcluster(mpi.universe.size() - 1)
但现在我只有 7 名工人(我已经测试过了),所以其中一个处理器核心没有从事任何生产性工作......
R CMD config CC
只给我mpicc,我在其余配置中找不到任何相关内容。
任何想法如何使用所有分配的 cpu?我是 mpirun 的初学者,所有这些......我在没有调度程序的不同服务器上工作。我还能够通过pbdMPI 包使用所有已分配的CPU。
【问题讨论】:
-
一个猜测,
mpirun -np 1在远程节点中启动了 1 个处理器来运行 R 脚本,它使用了 1 个内核,然后在 R 内核中再次创建 8 个。所以,没有足够的核心。 -
谢谢,我也有类似的想法。但是将
includemaster=TRUE添加到makeMPIcluster似乎并没有改变任何东西。我也找不到该选项的任何文档,或如何设置 MPI 集群的更详细信息。 -
你可以尝试只通过 pbs 启动 rscript 而不使用 mpirun 或者不绑定到核心吗?
-
我可以尝试(当当前工作完成时。)我怀疑是否在没有 mpirun 的情况下启动它,但没有尝试过,但谷歌很快就显示了调用 R w/o mpirun 时出现的许多问题.不过两者都可以尝试。
-
是的,我明天会尝试重现您的案例。我会回复你我的结果:)