热插拔OpenMPI集群中的其他节点

时间:2011-05-27 00:31:28

标签: mpi cluster-computing distributed-computing openmpi

是否可以将其他节点(主机)热插入正常运行的OpenMPI应用程序?我们谈论的是生产环境,即使是5秒的停机时间我们也买不起。 有两种我感兴趣的场景:

  1. 我们只想通过增加一个广播监听器来增强计算能力。
  2. 一个节点死了,主节点处理得很好,并将任务重新分配给其他人。系统管理员进入,重新启动死节点并将其重新插入群集。
  3. 哪种平台独立的MPI实施最适合上述场景? OpenMPI不是必须的。

1 个答案:

答案 0 :(得分:2)

MPI-2 - 任何实现 - 都允许动态进程,实际上添加进程目前比删除进程更可行。您可以使用MPI_COMM_SPAWN启动具有给定可执行文件的新进程,并返回一个可用于在旧(原始)进程之间进行通信的内部通信器。

这里的技巧是 - 什么都不会自动检测新节点。你必须有一些过程留意他们,SPAWN他们的东西。如果新节点只是主节点的监听器,那可能是最好的情况,因为只有主节点才真正需要了解它。确保spawn发生在新节点而不是其他地方的调用将通过info参数进行生成,并且可能依赖于实现。