热插拔OpenMPI群集中的附加节点

热插拔OpenMPI群集中的附加节点,mpi,cluster-computing,distributed-computing,openmpi,Mpi,Cluster Computing,Distributed Computing,Openmpi,是否可以将其他节点(主机)热插拔到正在工作的OpenMPI应用程序中?我们谈论的是生产环境,在这种环境中,我们甚至无法承受5秒钟的停机时间。 我感兴趣的场景有两种: 我们只是想通过增加一个广播侦听器来增强计算能力 当节点死亡时,主节点会很好地处理它,并将任务重新分配给其他节点。系统管理员进来,重新启动死节点并将其插回集群 哪种独立于平台的MPI实现最适合上述场景?OpenMPI在这里不是必须的。MPI-2——任何实现——都允许动态进程,事实上,添加进程目前比删除进程更可行。您可以使用启动具有给定

是否可以将其他节点(主机)热插拔到正在工作的OpenMPI应用程序中?我们谈论的是生产环境,在这种环境中,我们甚至无法承受5秒钟的停机时间。 我感兴趣的场景有两种:

  • 我们只是想通过增加一个广播侦听器来增强计算能力
  • 当节点死亡时,主节点会很好地处理它,并将任务重新分配给其他节点。系统管理员进来,重新启动死节点并将其插回集群
  • 哪种独立于平台的MPI实现最适合上述场景?OpenMPI在这里不是必须的。

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


    这里的技巧是——没有任何东西会自动检测到新节点。你必须有一些程序来监视它们,
    SPAWN
    对它们进行监视。如果新节点只是主节点的侦听器,这可能是最好的情况,因为只有主节点真正需要知道它。确保生成发生在新节点上而不是其他地方的调用将通过
    info
    参数来生成,并且可能取决于实现。

    如果系统已在运行,如何将新主机名添加到主机列表中?仅调用SPAWN将在一个已连接的主机上生成一个进程。我们需要告诉系统有关新机器的信息。只需查看MPI_信息规范就可以回答我之前评论中的问题。