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

Windows 10 MPI-仅使用两个NUMA节点之一的代码,windows-10,mpi,mpich,Windows 10,Mpi,Mpich,这是一个远大的希望,但也许有人可以帮助。 我正在Windows10上运行一个模型(SWAN)。我正在使用MPICH2(1.4.1p1)的MPI版本 我有两个NUMA节点,每个节点有36个核心。由于某些原因,我无法在所有72核上运行该模型 我正在使用mpiexec-nswan.exe或swanrun inputfile运行模型。如果我指定了mpiexec-n72,该模型将启动72个进程,但只使用一个节点的36个核心。即使我同时运行两个或多个模型,它们在同一个节点上运行,留下36个内核相当空闲 我假

这是一个远大的希望,但也许有人可以帮助。 我正在Windows10上运行一个模型(SWAN)。我正在使用MPICH2(1.4.1p1)的MPI版本

我有两个NUMA节点,每个节点有36个核心。由于某些原因,我无法在所有72核上运行该模型

我正在使用
mpiexec-nswan.exe
swanrun inputfile
运行模型。如果我指定了
mpiexec-n72
,该模型将启动72个进程,但只使用一个节点的36个核心。即使我同时运行两个或多个模型,它们在同一个节点上运行,留下36个内核相当空闲


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

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

除非您的系统配置为使用两个节点,否则您通常需要通过
-machinefile…
选项在命令行上传递此信息。感谢您的回复-我应该提到两个节点都是一台计算机的CPU。因此,我有两个CPU,每个CPU有36个内核,可以提供72个逻辑处理器(我几乎可以肯定我使用的名称是否正确?)。我还能使用machinefile选项吗?如何找到CPU的主机名?有多少台主机?每个主机有多少个套接字?每个插座有多少芯?每个核心有多少个线程?我仍然觉得很难理解CPU/处理器/节点/核心/线程等之间的区别,因此如果我没有正确表达自己,我很抱歉。我有一台机器,所以我猜是一台主机?计算机有2个插槽,36个内核,72个逻辑处理器,所以我假设每个内核有2个线程?无论哪种方式,我的模型的所有进程都在NUMA节点0上运行,而不是在节点0和1上运行,如果这样做有意义的话?没问题。我想,除非您明确声明
NUMA节点
,否则大多数人(包括我自己)都会假设node=host。