MPICH/OpenMPI 中的容错

Posted

技术标签:

【中文标题】MPICH/OpenMPI 中的容错【英文标题】:fault tolerance in MPICH/OpenMPI 【发布时间】:2011-07-20 04:30:21 【问题描述】:

我有两个问题-

第一季度。除了检查点/回滚之外,还有更有效的方法来处理 MPI 中的错误情况吗?我看到如果一个节点“死亡”,程序会突然停止。有没有办法在节点死亡后继续执行? (如果以准确性为代价,则没有问题)

第二季度。我在“http://***.com/questions/144309/what-is-the-best-mpi-implementation”中读到,OpenMPI 具有更好的容错性,最近 MPICH-2 也提出了类似的功能..有人知道它们是什么以及如何使用它们吗?是“模式”吗?他们可以在Q1中所述的情况下提供帮助吗?

请回复。谢谢。

【问题讨论】:

【参考方案1】:

MPI - 所有实现 - 能够在出现错误后继续运行一段时间。默认是死 - 也就是说,默认错误处理程序是 MPI_ERRORS_ARE_FATAL - 但可以设置(例如,参见讨论 here)。但是该标准目前并没有超出这个范围。也就是说,在这样的错误之后很难恢复和继续。如果您的程序足够简单(某种主从类型的设置),则可以继续这种方式。

MPI forum 目前正在研究 MPI-3,错误处理和容错将成为新标准的重要组成部分(working group 专门讨论该主题)。然而,在这项工作完成之前,从 MPI 获得更强容错性的唯一方法是使用早期的非标准扩展。 FT-MPI 是一个开发了非常强大的 MPI 的项目,但不幸的是它基于 MPI1.2;该标准的一个非常早期的版本。 here 声称他们现在正在使用 OpenMPI,但我不知道结果如何。有基于 MPI2 的 MPICH-V,但这比我认为您正在寻找的更多基于检查点重启。

已更新以添加:容错功能并未纳入 MPI-3,但工作组仍在继续其工作,预计不久之后会产生一些结果。 p>

【讨论】:

以上是关于MPICH/OpenMPI 中的容错的主要内容,如果未能解决你的问题,请参考以下文章

openmpi 中的即时通信与同步通信

openMPI 中的处理器/套接字关联?

Windows 10 Cygwin 中的 OpenMPI java 绑定

OpenMPI 中的动态节点

安装 openmpi 4.0 用与 horovod 编译

OpenMPI源码剖析:网络通信原理