作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在 C 中使用 MPI。我能够将数组的一部分分配给不同的处理器。不同的处理器完成了我想要的所有操作。现在我想将所有处理器中的所有子数组组合成一个大数组。例如,如果不同的处理器有如下子数组:
Processor 1:
0 1 1 0
0 0 1 0
Processor 2:
0 0 1 0
1 1 0 1
Processor 3:
1 1 0 0
1 1 1 1
...
我希望能够将所有子数组组合或“串联”在一起。例如,我希望大数组是:
0 1 1 0
0 0 1 0
0 0 1 0
1 1 0 1
1 1 0 0
1 1 1 1
...
我试图使用 MPI_Reduce,但我找不到一个操作来完成我想做的事情。我可以使用另一种 MPI 方法来实现我正在寻找的目标吗?
最佳答案
您正在寻找 MPI_Gather:
Each process (root process included) sends the contents of its send buffer to the root process. The root process receives the messages and stores them in rank order.
有关文档和示例,请参阅 here和 here . MPI 2.2 Standard 中的第 5.5 节也有例子。
关于c - MPI:如何将多个处理器中的子数组连接成一个更大的单个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16046792/
我是一名优秀的程序员,十分优秀!