MPICH / OpenMPI中的容错

时间:2011-03-22 03:59:12

标签: mpi openmpi fault-tolerance mpich

我有两个问题 -

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

Q2 即可。我在“http://stackoverflow.com/questions/144309/what-is-the-best-mpi-implementation”中读到,OpenMPI具有更好的容错能力,最近MPICH-2也提出了类似的功能。谁知道它们是什么以及如何使用它们?这是一种“模式”吗?他们可以帮助解决 Q1 中所述的情况吗?

请回复。谢谢。

1 个答案:

答案 0 :(得分:9)

MPI - 所有实现 - 都能够在错误发生一段时间后继续。默认是死 - 也就是说,默认错误处理程序是MPI_ERRORS_ARE_FATAL - 但是可以设置(例如,参见讨论here)。但是这个标准目前还没有那么多;也就是说,在这样的错误之后很难恢复并继续。如果您的程序足够简单 - 某种主工作者类型的设置 - 可以继续这种方式。

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

已更新以添加:容错未进入MPI-3,但工作组继续其工作,并且期望在不久之后会产生某些问题。