我想知道如果 OpenMPI/MPICH2 集群的一个节点终止会发生什么?是否有某种机制可以容忍这种情况并继续执行?
感谢您的回答海因里希
我想知道如果 OpenMPI/MPICH2 集群的一个节点终止会发生什么?是否有某种机制可以容忍这种情况并继续执行?
感谢您的回答海因里希
请注意,自 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,因此此类项目的步伐正在加快。
并非如此,MPI 不提供开箱即用的容错功能。您可以编写程序来处理进程的失败,但我们大多数人都没有,当硬件死机时,我们的程序会崩溃。随着具有数十万个处理器的超级计算机的出现,这种情况正在发生变化,平均故障间隔时间为秒级。