最新的(v1.8.3
)OpenMPI文档指定排名文件现在必须使用hwloc
报告的逻辑 cpu ID,而不是物理 ID ,请参阅Rankfiles
文档here的mpirun
部分中的最后一句:
从Open MPI v1.7开始,所有插槽/核心插槽位置都是 指定为逻辑索引(Open MPI v1.6系列使用物理 索引)。您可以使用HWLOC" lstopo"等工具。找到了 套接字和内核的逻辑索引。
我已经注意到这个网站上的一些问题(特别是this question和this question的答案)表明可以通过在id前加上open而在openMPI rankfile中指定物理cpu ID一个p
。例如:
rank 0=localhost slot=p0
rank 1=localhost slot=p8
rank 2=localhost slot=p1
rank 3=localhost slot=p9
要为排名0
请求物理cpu标识0
,为排名8
请求物理cpu标识1
等等。
我尝试在OpenMPI文档中搜索此语法无济于事。我也尝试让某人在OpenMPI 1.6.4
中尝试以这种方式构建一个排名文件,他报告说这也不起作用。
此语法适用于哪些版本的OpenMPI?是否记录在任何地方?什么是形式语法?
答案 0 :(得分:1)
感谢Hristo Iliev将我指向适当代码的方向。似乎函数hwloc_base_slot_list_parse
出现在版本1.8
的open-mpi代码中。
回溯代码我到达了orte_rmaps_rankfile_parse
函数,该函数似乎可以追溯到版本1.3
。查看此函数的历史记录,我们发现在解析插槽列表的部分中,版本1.5
分支中显示以下代码段:
/* we no longer support physical mappings */
if ('P' == value[0] || 'p' == value[0]) {
orte_show_help("help-rmaps_rank_file.txt", "not-supported", true, rankfile);
rc = ORTE_ERR_SILENT;
ORTE_ERROR_LOG(rc);
goto unlock;
}
因此,我得出结论,我的问题的答案是p
下面的OpenMPI版本支持1.5
表示法
编辑:我还在Open MPI Users
邮件列表中找到this message,这似乎支持我的调查结果。