MPI 服务器中的客户端关系

client relationship within MPI server

假设我有一个 MPI 服务器和两个客户端 - A 和 B,并且它们同时连接到同一个 MPI 服务器。

this 网站上,它声明 "If A is connected to B and B to C, then A is connected to C.""an error in one may affect the other"

是不是说如果B挂了,A对服务器的mpi调用也会受到影响?

如果是这样,有没有办法将它们分开,以免它们相互影响?

与 Jonathan Dursi 相比,我对 MPI 容错的看法更为积极,但只是轻微的。

您可以指示 MPI 报告错误。目前还不清楚您将如何处理这些信息,但在某些情况下,可能会重试或采用替代方法。

这篇论文被大量引用,并讨论了 MPI 的一个子集,它可能能够便携地使用并仍然保持容错:http://www.mcs.anl.gov/~lusk/papers/fault-tolerance.pdf

很抱歉发送幻灯片而不是实际内容,但 Wes Bland 在这个主题上做了很多工作(我相信他会在几分钟内提供更好的答案)http://www.mcs.anl.gov/~wbland/slides/jlpc13.pdf

由 Rob Latham 召唤...

MPI 不保证您在失败后仍然可以与其他进程通信,但是已经有非标准的工作来尝试启用该使用模型。

User Level Failure Mitigation is one way that lets you detect failures and continue executing. The site linked has some examples and use cases along with the full spec for ULFM. You might not need everything that it provides if all you want is to detect failures and continue. You can download the branch of Open MPI at that website or you can use the released versions of MPICH。对于任何一个,对新函数使用 MPIX_ 前缀。

综上所述,正如 Jonathan Dursi 在上面的评论中提到的,如果您正在寻找 client/server 模型,MPI 可能不适合您。是的,这是可能的,但它并没有真正针对该用例进行优化,使用不同的通信机制可能会更好。