我需要在我的Mpi计划中按循环顺序安排流程。
我有一个包含8个节点的集群,每个集群都有四核处理器。 我在Ubuntu Linux下使用mpich2-1.4.1p1版本。
如果使用此机器文件:
node01
node02
node03
node04
node05
node06
node07
node08
然后运行:
mpiexec -np 10 -machinefile host ./my-program
我有一个正确的安排,排名0到node01,rank1到node02,... rank8到node01,最后排名9到node02
但我需要知道排名0和排名8是否在同一核心上运行。我需要等级0在node01上的第一个核心上运行,在第二个核心上运行第8个。
如果我使用不同的机器文件:
node01:4
node02:4
node03:4
node04:4
node05:4
node06:4
node07:4
node08:4
然后运行:
mpiexec -np 10 -machinefile host2 ./my-program
我在node01上运行等级0,1,2,3。而这不是我想要的。
如何强制Hydra首先在节点上使用循环,然后使用第二个机器文件在核心上使用?