11

我有两个问题-

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

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

请回复。谢谢你。

4

1 回答 1

11

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

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

更新添加:容错没有进入 MPI-3,但工作组继续其工作,并且期望不久之后会产生一些结果。

于 2011-03-22T12:06:31.790 回答