OpenMPI 中的动态节点

Posted

技术标签:

【中文标题】OpenMPI 中的动态节点【英文标题】:Dynamic nodes in OpenMPI 【发布时间】:2011-10-18 08:11:42 【问题描述】:

在 MPI 中,是否可以在启动后添加新节点?例如,我有 2 台计算机已经在运行并行 MPI 应用程序。我在第三台计算机上启动此应用程序的另一个实例并将其添加到现有的通信器中。所有计算机都在本地网络中。

【问题讨论】:

【参考方案1】:

MPI2 程序有可能产生新的等级。该函数是MPI_Comm_spawn,它在一个新的 MPI 通信器上启动子进程。也就是说,新的排名与之前运行的排名有不同的 MPI_COMM_WORLD。不过,应该可以创建一个包含所有当前正在运行的队伍的新通信器。

【讨论】:

我认为这适用于已经连接的节点,但不适用于外部的、新到通信世界的节点。【参考方案2】:

不,目前无法将新节点添加到正在运行的 MPI 应用程序。 MPI 旨在了解程序启动时的节点总数。

正在处理出现故障的节点(例如在MPI-3)。也许如果您可以重新添加故障节点,那么您可以添加新节点,但这是我能想到的最接近的事情。有关 MPI 容错方法的更多信息,请参阅this answer。

【讨论】:

以上是关于OpenMPI 中的动态节点的主要内容,如果未能解决你的问题,请参考以下文章

OpenMPI:简单的 2 节点设置

OpenMPI:所有节点都作为节点 0 运行

OpenMPI 节点和网络拓扑

DCOM 和 OpenMPI

如何指定 OpenMPI 使用的端口范围?

使用 OpenMPI 进行数据分发