【发布时间】:2012-03-31 05:05:53
【问题描述】:
如果我使用 MPI,我会在运行主程序时指定多个进程。但是,我想从一个进程开始,并在运行时动态决定是否以及何时需要更多进程,以分叉更多进程。这或类似的可能吗?
否则我将不得不重新发明我非常想避免的 MPI。
【问题讨论】:
-
请参考我对 [this question][1] 的回答。 [1]:stackoverflow.com/questions/9683331/…
-
@HighPerformanceMark:但这只是一个新过程的开始。这不完全是来自当前进程的精确位置(和配置)的写入
fork的副本。 -
你问'这可能还是类似的事情?',我建议 mph_comm_spawn 是相似的。但如果它不适合您的要求,您可能不得不重写 MPI。或者使用另一个并行化库/工具集/方法。
-
既然你说的是分叉,看起来你所有的进程都在同一个节点上运行。 MPI 不做这种假设,并且 MPI 进程可能分散在集群上的许多节点中。这就是为什么,正如 HighPerformanceMark 所说,最接近您想要的 MPI 操作是 spawn。要以 MPI 方式进行某种分叉,您必须生成一个新进程并使用 P2P 通信将其初始状态发送给它。
标签: fork mpi inter-process-communicat