如果主机文件中的某个节点出现故障,如何在MPI程序中处理集群的其余节点

如果主机文件中的某个节点出现故障,如何在MPI程序中处理集群的其余节点,mpi,fault-tolerance,Mpi,Fault Tolerance,如果主机文件中的一个节点记录了如何使用MPI与其余节点一起工作,MPI 3标准包含了一个关于“容错”的提案草案。该提案未被采纳,但工作组继续取得进展。预计该提案将被采纳到该标准的未来版本中 我不知道有任何开源MPI实现为提案草案提供支持。我知道有一个商业MPI完全实现了关于容错的提案草案(作为免责声明……该MPI恰好是我的工作对象) 即使有了提案草案,“节点级”故障仍然很难恢复。对于节点级故障,当前的“食谱”方法是使用检查点/重启和作业调度器来自动重启作业。如果某个节点失败,作业将自动重新安排在

如果主机文件中的一个节点记录了如何使用MPI与其余节点一起工作,MPI 3标准包含了一个关于“容错”的提案草案。该提案未被采纳,但工作组继续取得进展。预计该提案将被采纳到该标准的未来版本中

我不知道有任何开源MPI实现为提案草案提供支持。我知道有一个商业MPI完全实现了关于容错的提案草案(作为免责声明……该MPI恰好是我的工作对象)

即使有了提案草案,“节点级”故障仍然很难恢复。对于节点级故障,当前的“食谱”方法是使用检查点/重启和作业调度器来自动重启作业。如果某个节点失败,作业将自动重新安排在与上次成功检查点不同的一组节点上运行


此cookbook方法需要强健的检查点/重启基础设施、容错共享文件系统,以及应用程序和MPI实现在检查点/重启过程中的积极参与。此外,并非每个MPI&应用程序都能够在不同的节点集上重新启动…因此,这种方法可能需要在重新启动作业之前恢复故障节点

正如前面的海报所说,没有任何“标准”的处理方法,但MPI论坛容错工作组的草案已经相当成熟。如果您想尝试一下,目前有一个基于OpenMPI分支的参考实现。很快就会有其他的实现包含这个草案,但是现在,您唯一的开源选项是在。您可以在那里下载实现,以及标准草案的版本和一些示例。如果您有问题,这里也有一个邮件列表。

这是被问到的;当前的MPI实现都是关于性能的,因此没有容错能力(尽管个别项目尝试以不同的方式向MPI添加错误恢复)。但随着集群规模的扩大,容错成为一个更重要的问题;有一个很好的例子,人们普遍认为下一个主要的MPI版本将有类似的东西。