MPICH/OpenMPI中的容错

Par*_*ram 10 fault-tolerance mpi openmpi mpich

我有两个问题 -

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

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

亲切的回复.谢谢.

Jon*_*rsi 10

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

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

更新以添加:容错没有进入MPI-3,但工作组继续其工作,并期望在不久之前由此产生的东西.