Rmpi启动从节点报OpenMPI可用slots不足无法访问全部核心如何解决
OpenMPI slots不足问题解决方案
方法1:运行时临时调整(测试场景优先)
- 运行R脚本时显式指定本地可用slots数量:
mpirun --host localhost:4 Rscript your_script.R - 允许超量申请slots(无需匹配实际核数,适合快速验证):
mpirun --oversubscribe Rscript your_script.R - 若在R交互终端运行代码,可提前设置环境变量绕过slots限制:
# 终端执行后再启动R export OMPI_MCA_rmaps_base_oversubscribe=1 R
方法2:永久配置默认slots(本地常用场景优先)
- 创建自定义MPI hosts文件,在家目录新建
.mpi_hosts,写入以下内容:
localhost slots=4
- 编辑
~/.bashrc配置文件,添加以下环境变量:
export OMPI_MCA_orte_default_hostfile=~/.mpi_hosts
- 执行
source ~/.bashrc使配置生效,后续运行Rmpi代码无需额外加参数。
补充说明
- 调用
mpi.spawn.Rslaves(nslaves = N)时,总slots占用为N+1(N个从节点+1个主进程),配置slots数量时需要预留对应额度。 - 若运行在集群环境下,需联系集群管理员调整对应队列的slots配额,本地运行按上述方法配置即可。
内容的提问来源于stack exchange,提问作者bedwards
相关产品推荐
相关产品推荐

