这取决于您要编写软件的语言。但基本上,openMPI 应用程序看起来像这样:
- 为 MPI 调用 MPI_INIT 为您在节点之间初始化必要的通信。
- 使用 MPI_Send、MPI_RECV 函数发送或接收数据。这些函数有阻塞和非阻塞调用,以及其他几个函数 - 广播(发送给每个人)、分散(将数组中的数据等量分配给每个主机)等。
- 使用 MPI_FINALIZE 完成通信过程。
在 MPI 中,几乎总是包含以下工作流程:
- 分配主主机-通常是processId = 0的主机。它的功能是协调从主机的工作。基本上,如果您必须并行从数组中获取最大值,那么他的工作就是获取数组,将其等量分配给从站,从从站收集结果并从列表中选择最大值。
- 从主机 - 等待数据接收,执行处理,将结果发送回主机。
我会推荐这个用于 C++ 开发的 MPI 教程,也可以查看这篇关于该主题的书籍的帖子。