MPI - 仅使用两个 NUMA 节点之一的代码

MPI - code only using one of two NUMA nodes

希望不大,但也许有人可以提供帮助。 我正在 运行 在 Windows 10 上使用模型 (SWAN)。我正在使用 MPICH2 (1.4.1p1) 的 MPI 版本。

我有两个 NUMA 节点,每个节点有 36 个内核。出于某种原因,我无法 运行 所有 72 个内核的模型。

我正在 运行 使用 mpiexec -n <np> swan.exeswanrun inputfile <np> 构建模型。如果我指定 mpiexec -n 72 模型启动 72 个进程但只使用一个节点的 36 个核心。即使我同时 运行 2 个或更多模型,它们 运行 在同一个节点上留下 36 个核心几乎闲置。

我假设我在安装 MPICH2 时犯了一个错误,但还不能完全弄清楚哪里出了问题。我只是使用此处提供的二进制文件安装了 MPICH2 (http://www.mpich.org/static/downloads/1.4.1p1/) 是否有一些我忽略的选项,我必须分别为两个节点安装它?

经过一番挖掘,我意识到我的机器上安装了多个版本的 MPI。虽然我仍然不确定为什么我的模型一次只能 运行 在一个 NUMA 节点上(我不确定调用哪个 MPI 版本 mpiexec)我卸载了所有 MPI 版本并进行了全新的重新安装。我现在可以在所有 72 个内核上 运行。