1

我想在使用 OpenMPI 的 TCP/IP 网络连接的多台机器上分发数据。任何人都可以指出正确的资源和方向。我是 OpenMPI 的新手。

谢谢

4

2 回答 2

5

这取决于您要编写软件的语言。但基本上,openMPI 应用程序看起来像这样:

  1. 为 MPI 调用 MPI_INIT 为您在节点之间初始化必要的通信。
  2. 使用 MPI_Send、MPI_RECV 函数发送或接收数据。这些函数有阻塞和非阻塞调用,以及其他几个函数 - 广播(发送给每个人)、分散(将数组中的数据等量分配给每个主机)等。
  3. 使用 MPI_FINALIZE 完成通信过程。

在 MPI 中,几乎总是包含以下工作流程:

  1. 分配主主机-通常是processId = 0的主机。它的功能是协调从主机的工作。基本上,如果您必须并行从数组中获取最大值,那么他的工作就是获取数组,将其等量分配给从站,从从站收集结果并从列表中选择最大值。
  2. 从主机 - 等待数据接收,执行处理,将结果发送回主机。

我会推荐这个用于 C++ 开发的 MPI 教程,也可以查看这篇关于该主题的书籍的帖子。

于 2012-03-25T09:40:53.660 回答
1

这只是网上众多 MPI 教程之一;我很惊讶你自己没有找到这个。

于 2012-03-25T09:38:26.470 回答