当前位置:  开发笔记 > 小程序 > 正文

在单独的MPI程序之间进行通信

如何解决《在单独的MPI程序之间进行通信》经验,为你挑选了1个好方法。

我有以下问题:

程序1有大量数据,比如说10GB.有问题的数据包括大型整数和双数组.程序2具有1..n个MPI进程,这些进程使用此数据的切片来计算结果.

如何将程序1中的数据发送到MPI进程?

使用文件I/O是不可能的.计算节点有足够的RAM.



1> Scott Wales..:

根据您的MPI实现,应该可以在同一MPI作业中运行多个不同的程序.例如,使用OpenMPI可以运行

 mpirun -n 1 big_program : -n 20 little_program

并且您应该能够使用MPI_COMM_WORLD访问这两个程序.然后,您可以使用通常的MPI函数将数据从大程序传递给小程序.


我这样做,效果很好(使用微软的msmpi).您可能希望使用MPI_APPNUM变量(可在msmpi中作为环境变量访问为PMI_APPNUM)来确定谁是谁:在上面的情况中,big_program将具有MPI_APPNUM = 0并且所有little_programs将具有MPI_APPNUM = 1.
推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有