如何解决openmpi 中的 -cpu-set 无法正常工作
我有 4 台主机来运行 openmpi 应用程序 wrf.exe
。每个主机上有 48 个内核(每个插槽 24 个,每个节点 2 个插槽)。
我想运行 40 个进程来处理应用程序。每个节点将在 10 个内核(0、2、4、6、8、10、12、14、16、18)上运行 10 个进程。
以下是我尝试过的方法,但我没有像我想象的那样得到 mpi 方式。
-
mpirun --hostfile=4hosts --cpu-set 0,2,4,6,8,10,12,14,16,18 ...
。 10 个内核以 100% 的利用率运行每个节点。但是超过 100 个进程wrf.exe
在每个节点上运行。 -
mpirun --hostfile=4hosts -np 40 --cpu-set 0,18 ...
。 wrf.exe 的 40 个进程在我启动应用程序的主机上运行。主机上只有 10 个内核以 100% 的利用率运行。
mpirun --hostfile=4hosts -np 40 -N 10 --cpu-set 0,18 ...
mpirun --hostfile=4hosts -N 10 --cpu-set 0,18 ...
mpirun --hostfile=4hosts ---map-by ppr:10:node --cpu-set 0,18 ...
所有错误:
Conflicting directives for mapping policy are causing the policy
to be redefined:
New policy: RANK_FILE
Prior policy: UNKNOWN
Please check that only one policy is defined.
我的主机文件中有四个 ip,表示我想运行我的应用程序的主机。我在centos7.6上使用openmpi。
如何在 mpirun 中使用 -cpu-set 在 4 个节点上运行总共 40 个进程,在每个节点的指定核心上运行 10 个进程?
解决方法
好像cpu set 在openmpi v4.0.x 中不起作用。它适用于 openmpi-v5.0.x 或 master 分支。我已经更新了我的 openmpi。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。