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