MPI-在程序运行时添加/删除节点



是否有允许在运行时动态添加/删除节点的MPI实现?是否从节点的完全硬件故障中恢复,允许在不重新启动程序的情况下修复并重新启动节点?

是否有允许在运行时动态添加/删除节点的MPI实现

这实际上是两个问题。节点通常可以在运行时使用MPI_Comm_spawn之类的调用动态添加。正如@Hristo在评论中指出的那样,您应该在Open MPI中设置正确的信息键。这在其他实现中也是可能的。至于删除节点,目前这是一个很大的研究领域。目前,大多数MPI实现在完全节点故障的情况下都有不同程度的成功。在当前发布的Open MPI中,我不认为有任何对这种失败的支持[需要引用],尽管仍有改进工作在进行中。在当前版本的MPICH中,可以将标志-disable-auto-cleanup传递给mpiexec,并且在进程/节点出现故障后,它不会自动清理应用程序。但是,您仍然需要修改MPI应用程序来处理这种情况。MPICH的各种衍生产品(Intel MPI、Cray MPI、IBM MPI、MVAPICH等)都不支持此功能AFAIK。还有其他研究实现也可用于扩展MPI标准的支持。标准化机构目前正在考虑将用户级故障缓解作为一种让用户处理流程故障的方式。在链接的网站上有一个基于Open MPI的研究实现,实验原型也将出现在MPICH的下一个版本(3.2)中

是否从节点的完全硬件故障中恢复,允许在不重新启动程序的情况下修复并重新启动节点

这与上述过程基本相同。您需要使用API来删除一个进程,然后以某种方式发现它是可用的,并使用spawn将其添加回来。但是,这些调用必须从应用程序内部进行,而不是从外部进行。

最新更新