我正在使用OpenMPI的approach命令运行我的程序。我希望以下列方式分配流程:
0
的排名应占用多个核心(例如,让它为4); 这是因为等级0
做了一些与其他等级无关的特殊事情,它需要不止一个核心。
我正在尝试找到一些命令行参数和mpiexec
规范的组合来实现此目的。到目前为止,我已经尝试了一个等级文件(名为openmpi-rankfile
),其中一行如下:
rank 0=localhost slot=0:0-3
但是,当我使用命令行运行程序时,如
mpiexec -n 20 -rankfile openmpi-rankfile path/to/executable -some arguments
openmpi抱怨:
排名缺少其位置规范:
等级:1
排名档案:openmpi-rankfile
所有进程必须在排名文件中指定其位置。或 在文件中添加一个条目,或提供一个默认的slot_list用于 任何未指明的等级。
(强调我的)
所以我的问题是:我如何“提供默认 slot_list用于任何未指定的排名”?
顺便说一下,我可能会使用生成一个明确指定每个等级的插槽的等级文件,但这听起来很浪费。我对这个“默认的slot_list”设置感兴趣。