使用OpenMPI进行数据分发

Cod*_*der 1 openmpi

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

谢谢

Dmi*_*nik 5

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

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

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

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

我建议这个 MPI教程C++开发,也看看这个如此后关于在话题的书籍.