【发布时间】:2021-06-17 12:34:31
【问题描述】:
我有 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,2,4,6,8,10,12,14,16,18 ...。 wrf.exe 的 40 个进程在我启动应用程序的主机上运行。主机上只有 10 个内核以 100% 利用率运行。
mpirun --hostfile=4hosts -np 40 -N 10 --cpu-set 0,2,4,6,8,10,12,14,16,18 ...
mpirun --hostfile=4hosts -N 10 --cpu-set 0,2,4,6,8,10,12,14,16,18 ...
mpirun --hostfile=4hosts ---map-by ppr:10:node --cpu-set 0,2,4,6,8,10,12,14,16,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。