我使用MPICH2。当我使用mpiexec启动进程时,一个进程的失败将导致所有其他进程崩溃。怎么避免这个?
答案 0 :(得分:4)
在MPICH中,有一个名为-disable-auto-cleanup
的标志,它会阻止进程管理器在单个进程失败时自动清理所有进程。
但是,MPI本身对容错没有太多支持,而容错工作组正在努力在未来版本的MPI标准中添加。
现在,您可以做的最好的事情就是将默认的MPI错误处理程序从MPI_ERRORS_ARE_FATAL
更改为导致所有进程中止,以及其他类似MPI_ERRORS_RETURN
的内容,这会将错误代码返回给应用程序并允许它做其他事情。但是,在发生故障后,您不太可能再进行通信,尤其是在您尝试使用集体通信时。