如何使用MPI在多个独立启动的程序之间传输数据

时间:2014-09-11 22:55:19

标签: c++ c mpi openmpi data-transfer

我是MPI的新手。我正在阅读mpitutorial.com上的教程。不幸的是,这些例子没有涉及我想深入研究的那种连接/通信。我想要建立的是:

我想拥有一个中央MPI程序,其他独立启动的程序可以连接到该程序。中央MPI计划的角色类似于1960年的配电盘和配电盘操作员。这意味着连接的程序既可以从中央MPI程序接收数据,也可以向中央MPI程序发送数据。类比的一个例外是中央MPI程序在发送之前修改它收到的数据。

在上面,请考虑我作为中央MPI计划的开发者。假设所有连接的程序都是独立开发的,而不是由我开发的。最后,所有程序都是开源的。所以我也可以修改那些我自己没有开发的程序。

有人可以解释我如何使用MPI建立这样的联系,或者通过告诉我应该广泛研究哪些MPI概念来指导我正确的方向?

1 个答案:

答案 0 :(得分:1)

您想要的是MPI绝对可行的,并且有一整套chapter in the MPI standard专门用于遵循客户/服务器模型的程序。

不幸的是,这是MPI领域中一个相对模糊且记录不完整的角落,机制本身非常简陋且存在许多缺点,最明显的是标准中没有非阻塞接受操作,而且很多MPI实现不是完全线程安全的。在这种情况下,最好的信息来源之一是MPI标准本身。还有一些问题,如this onethis one,可以让您了解如何完成任务。