【问题标题】:Running MPI benchmarks on multiple nodes?在多个节点上运行 MPI 基准测试?
【发布时间】:2014-12-11 18:18:23
【问题描述】:

我试图在四个节点上运行 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

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

谢谢

【问题讨论】:

  • 您的 MPI 实现可能会一个接一个地连续放置 4 个进程。如果您希望每个节点只有一个进程,您需要告诉这个您的 MPI,例如使用 -npernode 1。如何准确实现这一点取决于您的环境。

标签: mpi


【解决方案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 只为每个主机提供一个插槽。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-10
    • 2022-01-27
    • 2020-02-11
    • 1970-01-01
    • 2020-09-27
    相关资源
    最近更新 更多