gpt4 book ai didi

mpi - 将 MPI 进程映射到特定节点

转载 作者:行者123 更新时间:2023-12-04 05:14:51 31 4
gpt4 key购买 nike

我认为这个问题在这里问是无关紧要的。却无法自拔。
假设我有一个包含 100 个节点的集群,每个节点有 16 个核心。
我有一个 mpi 应用程序,它的通信模式已经知道,我也知道集群拓扑(即节点之间的跳距)。
现在我知道了减少网络争用的节点映射过程。例如:进程到节点的映射是 10->20,30->90。
如何将等级为 10 的进程映射到节点 20?
请帮助我。

最佳答案

如果您不受任何类型的排队系统的限制,您可以通过创建自己的 machinefile 来控制等级到节点的映射。 .

例如,如果文件 my_machine_file有以下 1600 行

   node001
node002
node003
....
node100
node001
node002
node003
....
node100
...
[repeat 13 more times]
...
node001
node002
node003
....
node100

它将对应于映射
  0-> node001, 1 -> node002, ... 99 -> node100, 100 -> node001, ...

你应该运行你的应用程序
  mpirun -machinefile my_machine_file -n 1600 my_app

当您的应用程序需要少于 1600 个进程时,您可以相应地编辑您的机器文件。

请记住,集群管理员可能已经根据互连拓扑对节点进行了编号。然而,有报告称,通过仔细利用集群拓扑,性能显着提高(10%-20% 的数量级)。 (引用如下)。

注:使用 mpirun 启动 MPI 程序既不标准化也不便携。然而,这里的问题显然与特定的计算集群和特定的实现 (OpenMPI) 相关,并且不需要可移植的解决方案。

关于mpi - 将 MPI 进程映射到特定节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14411763/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com