【问题标题】:MPICH2, the failure of one process will crash all other processesMPICH2,一个进程失败会导致其他所有进程崩溃
【发布时间】:2016-07-22 04:48:31
【问题描述】:

我使用 MPICH2。当我使用 mpiexec 启动进程时,一个进程的失败将使所有其他进程崩溃。如何避免这种情况?

【问题讨论】:

  • 不要回避!这是 99.9% 的情况下所期望的行为。为什么要不然?
  • 我们要实现故障恢复:一个进程崩溃我们只需要重启这个。
  • 嗯,你不能,因为 MPI 不支持它。几十年来,容错一直是 MPI 社区的一个研究主题,并预计会出现在 MPI 3.0 中,但它没有。也许对于 MPI 4.0...
  • 你的问题有点笼统,这里有最近努力的概述:stackoverflow.com/a/23919726/491687

标签: mpi mpich


【解决方案1】:

在 MPICH 中有一个名为 -disable-auto-cleanup 的标志,它会阻止进程管理器在单个进程失败时自动清理所有进程。

但是,MPI 本身并没有太多对容错的支持,这是容错工作组正在努力在未来版本的 MPI 标准中添加的内容。

目前,您能做的最好的事情是将默认 MPI 错误处理程序从导致所有进程中止的 MPI_ERRORS_ARE_FATAL 更改为其他类似 MPI_ERRORS_RETURN 的东西,这会将错误代码返回给应用程序并允许它做别的事情。但是,发生故障后您可能无法再进行通信,尤其是在您尝试使用集体通信时。

【讨论】:

    猜你喜欢
    • 2021-03-28
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 2012-12-17
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多