gpt4 book ai didi

c - OpenMPI 节点和网络拓扑

转载 作者:太空宇宙 更新时间:2023-11-04 07:33:45 25 4
gpt4 key购买 nike

我目前正在构建一个小型实用程序库,作为一个较大项目的一部分。OpenMPI 有一个记录良好的 API 库,但当涉及到节点之间的低级通信时,我有点困惑。我知道在编写你的算法时,你将它分布在所有预期进行计算的节点上,每个节点都与其余节点通信,根据它们的“全局”MPI 等级(如算法中定义的)执行算法的一部分,以及所有节点来回同步。但是,我将 global 放在引号中的原因是,openMPI 是否在 ip 级别进行通信,因此说我已经有一个长期执行的算法,但是如果我执行我的 MPI,则有一个节点处于空闲状态,不运行任何 MPI 进程算法,它会加入 MPI_COMM_WORLD 并成为整体网络拓扑的一部分,还是我需要做一些“巫术”才能使该节点成为 MPI_COMM_WORLD 的一部分。另外,如果节点可以成为该特定算法的 MPI_COMM_WORLD 的一部分,我该如何注册/识别这个新节点?

任何阅读引用资料也很有帮助。

非常感谢!

tl;dr MPI 节点是否可以从 MPI_COMM_WORLD 热插拔?

最佳答案

一旦通信器被创建,您就不能将节点加入到它。 MPI_COMM_WORLD 也是如此,它只是一个预先创建的通信器。只有作为初始 SPMD 启动的一部分启动的进程才会成为 MPI_COMM_WORLD 的一部分。但是您可以使用 MPI-2 进程管理工具生成额外的进程,如 Chapter 10 中所述。当前 MPI 标准版本 2.2。

新产生的进程有自己的MPI_COMM_WORLD,初始组的进程只能通过特殊的intercommunicator(MPI_COMM_WORLD)与它们通信是由 spawn 操作返回的 intracommunicator)。由于进程生成是一个集体操作,MPI_COMM_WORLD 中的所有进程都将获得该交互器的句柄。

MPI 3.0(迟早会发布)将带来故障容错,允许从 MPI_COMM_WORLD(或任何其他通信器)中排除/删除故障进程,MPI 3.1 最终将带来一些可以替换错误流程的东西。

关于c - OpenMPI 节点和网络拓扑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10741647/

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