我最近尝试在使用 CentOS 的集群上执行并行模型拟合和交叉验证。因为我需要进行10折交叉验证,所以我最初通过命令启动10个进程:
mpirun -np 10 --bynode -hostfile ./my_hostfile python my_program &
在每个过程(进行一次计算)中,首先执行模型拟合。由于模型拟合可以并行执行,我通过 MPI spawn 函数生成了一些额外的过程。额外进程的数量无法预先确定,所以我真的需要生成它们!
这样的程序在我自己的工作站(单节点)上完美运行。但是,当我尝试在集群(跨节点)上运行它时,我收到以下错误消息:
[fs3:06947] [[50533,0],0] ORTE_ERROR_LOG:在第 758 行的文件 base/plm_base_launch_support.c 中找不到
并且所有进程都终止。我无法弄清楚为什么会这样。我正在使用 python 库 mpi4py,它绑定到打开的 mpi。
更新:
主机文件只包含我保留的节点列表。其中没有“max_slots”或“slots”规范。而且我确信我已经为这个计算保留了足够的节点。