在多个节点上运行MPI基准测试?

时间:2014-12-11 18:18:23

标签: mpi

我正在尝试在四个节点上运行MPI基准测试,但它总是只占用一个节点。我使用的命令如下:

mpirun -genv I_MPI_DEBUG=4  -np 4 -host mac-snb19,mac-snb20,mac-snb21,mac-snb22 IMB-MPI1 PingPong

mpirun -genv I_MPI_DEBUG=4  -np 4 --hosts mac-snb19,mac-snb20,mac-snb21,mac-snb22 IMB-MPI1 PingPong

此处,mac-snb19mac-snb20mac-snb21mac-snb22是节点。难道我做错了什么?因为我得到的输出显示只使用mac-snb19,我也通过登录节点进行检查,并且仅在mac-snb19中我可以看到MPI进程正在运行,而在其他情况下并非如此。部分输出在这里显示了我所说的内容:

[0] MPI startup(): 0       2073     mac-snb19  {0,1,2,3,16,17,18,19}
[0] MPI startup(): 1       2074     mac-snb19  {4,5,6,7,20,21,22,23}
[0] MPI startup(): 2       2075     mac-snb19  {8,9,10,11,24,25,26,27}
[0] MPI startup(): 3       2077     mac-snb19  {12,13,14,15,28,29,30,31}
 benchmarks to run PingPong

你能告诉我我在这里犯了什么错误吗?

由于

1 个答案:

答案 0 :(得分:1)

使用Hydra流程管理器,您可以添加-perhost 1以强制每个主机执行一个进程,也可以创建包含以下内容的计算机文件:

mac-snb19:1
mac-snb20:1
mac-snb21:1
mac-snb22:1

然后像:

一样使用它
mpirun -genv I_MPI_DEBUG=4 -machinefile mfname -np 4 IMB-MPI1 PingPong

其中mfname是机器文件的名称。 :1指示Hydra每个主机只提供一个插槽。