0

我有一个由 4 个节点组成的小集群,每个节点有 4 个核心。我可以愉快地在一个节点上运行 HP Linpack,但我很难让它在多个节点上运行。

我使用 OpenMPI 和 OpenBLAS 从源代码编译了 HPL-2.3。一切似乎都适用于单节点测试。

我的“节点”文件是:

192.168.0.1 slots=4
192.168.0.2 slots=4
192.168.0.3 slots=4
192.168.0.4 slots=4

如果我运行,mpirun -np 16 -hostfile nodes uptime我会得到以下信息:

19:10:49 up  8:46,  1 user,  load average: 0.05, 0.53, 0.34
19:10:49 up  8:46,  1 user,  load average: 0.05, 0.53, 0.34
19:10:49 up  8:46,  1 user,  load average: 0.05, 0.53, 0.34
19:10:49 up 9 min,  0 users,  load average: 0.08, 0.06, 0.03
19:10:49 up 9 min,  0 users,  load average: 0.08, 0.06, 0.03
19:10:49 up 9 min,  0 users,  load average: 0.08, 0.06, 0.03
19:10:49 up  8:46,  1 user,  load average: 0.05, 0.53, 0.34
19:10:49 up 37 min,  0 users,  load average: 0.08, 0.02, 0.01
19:10:49 up 37 min,  0 users,  load average: 0.08, 0.02, 0.01
19:10:49 up 37 min,  0 users,  load average: 0.08, 0.02, 0.01
19:10:49 up 20 min,  0 users,  load average: 0.00, 0.02, 0.00
19:10:49 up 9 min,  0 users,  load average: 0.08, 0.06, 0.03
19:10:49 up 20 min,  0 users,  load average: 0.00, 0.02, 0.00
19:10:49 up 20 min,  0 users,  load average: 0.00, 0.02, 0.00
19:10:49 up 37 min,  0 users,  load average: 0.08, 0.02, 0.01
19:10:49 up 20 min,  0 users,  load average: 0.00, 0.02, 0.00

向我建议,OpenMPI 正在工作并分发uptime到 4 个处理器、16 个内核。

但是,当我运行时,mpirun -np 16 -hostfile nodes xhpl我得到以下信息:

mpirun was unable to find the specified executable file, and therefore
did not launch the job.  This error was first reported for process
rank 8; it may have occurred for other processes as well.

NOTE: A common cause for this error is misspelling a mpirun command
      line parameter option (remember that mpirun interprets the first
      unrecognized command line token as the executable).

Node:       192.168.0.3
Executable: /home/ucapjbj/phas0077/projects/hpl-2.3/bin/arch/xhpl

这向我表明xhpl在 node 上找不到192.168.0.3,这似乎是合理的,因为它只存在于192.168.0.1我的开发节点上。但从概念上讲,我的印象是我可以在一个节点上开发,然后让 OpenMPI 将可执行文件分发到其他节点执行,而无需事先将可执行文件复制到其他节点。我从根本上误解了这一点吗?

任何指导将不胜感激。

亲切的问候

约翰

4

1 回答 1

0

看来我必须将“xhpl”可执行文件复制到每个节点上的相同位置。

我已经查看了该mpirun --preload-binary选项,这似乎正是我想要的,但我无法让它发挥作用。任何建议都会非常受欢迎。

最好的祝愿

约翰

于 2020-05-20T17:18:27.610 回答