MPICH/OpenMPI中的容错性

11

我有两个问题-

Q1. 在MPI中,除了检查点/回滚之外,是否有更有效的处理错误情况的方式?如果一个节点“死亡”,程序会突然停止... 是否有任何方法可以在节点死亡后继续执行?(如果以精度为代价就没有问题)

Q2. 我在“https://dev59.com/vnVC5IYBdhLWcg3w7Vxq”中读到,OpenMPI具有更好的容错性,并且最近MPICH-2也推出了类似的功能... 有人知道它们是什么以及如何使用吗?这是一种“模式”吗?它们能否帮助解决Q1中提到的情况?

请回复。谢谢。

1个回答

11
MPI - 所有实现 - 都具备一段时间内在发生错误后继续执行的能力。默认情况下会停止运行 - 也就是说,MPI_ERRORS_ARE_FATAL 是默认的错误处理程序 - 但可以进行设置(例如,请参见此处的讨论here)。但是,标准目前并没有超出这个范围;也就是说,在这样的错误之后很难恢复和继续执行。如果您的程序足够简单 - 某种形式的主从类型设置 - 则可能可以以这种方式继续执行。 MPI论坛目前正在研究成为MPI-3的内容,错误处理和容错将是新标准的重要组成部分(有一个工作组专门负责此主题)。然而,在这项工作完成之前,获得更强的MPI容错性的唯一方法是使用早期的非标准扩展。FT-MPI是一个开发非常强大的MPI的项目,但不幸的是它基于MPI1.2;这是一个非常早期的版本。这里声称他们现在正在与OpenMPI合作,但我不知道那件事情的进展如何。有MPICH-V,基于MPI2,但那更多是基于检查点重启,而不是我认为你正在寻找的东西。

更新添加:容错并没有被纳入MPI-3,但工作组继续开展工作,预计不久将会有所成果。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接