我想知道如果OpenMPI / MPICH2集群的节点终止会发生什么?是否有某种机制可以容忍这种情况并继续执行?
感谢您的回答 海因里希
答案 0 :(得分:3)
请注意,自MPI 1.x天以来一直存在的功能是您可以设置错误处理程序:例如,
http://www.mpi-forum.org/docs/mpi-11-html/node148.html
正如Mark所说,我们大多数人只是使用MPI_ERRORS_ARE_FATAL(这是默认值),因为我们的算法非常重,并且无法轻易恢复(除非通过检查点,我们大多数人都会这样做)。
但不一定是这样;您可以让MPI函数返回错误消息并尝试尽可能恢复。
有一些容错的MPI包 - http://icl.cs.utk.edu/ftmpi/(有点旧,只能实现MPI 1.2功能)。最近,http://osl.iu.edu/research/ft/cifts/是作为单独项目放入OpenMPI的一种方法,还有一个操作系统级别的检查点/重启包,BLCR,可能会引起关注。
MPI-3论坛正在讨论MPI中的标准容错API,因此这些项目的步伐正在加快。
答案 1 :(得分:1)
实际上,MPI不提供开箱即用的容错功能。你可以编写你的程序来处理进程的失败,但是我们大多数人都没有,我们的程序会在硬件死机时崩溃。随着具有数十万个处理器的超级计算机的出现以及几秒钟之间的平均故障间隔时间,这种情况正在发生变化。