MPI-如何从本地阵列中计算到全局阵列

MPI - How do I get counts from local arrays into global array?

本文关键字:阵列 计算 全局 MPI-      更新时间:2023-10-16

我正在尝试实现用于计数排序的MPI程序。我已经发送了每个等级的本地计数数组。当我将它们发送回主过程时,如何确保将所有本地阵列添加到全局数组中?我已经看到MPI_Reduce获得了数组的总和,但是我需要每个单独的单元格。

示例:

array = {4,0,3,2,2,1,4,1,3,2,4,3,4,3}
countslocal1 = {1,1,2,3,4}
countslocal2 = {0,2,1,1,0}
countsglobal = {1,3,3,4,4}

实际上MPI_Reduce确实可以做您需要的事情。它没有获得数组的总和,而是每个单个单元格的总和。或引用MPI 3.1标准:

每个过程都可以提供一个元素或一系列元素 在哪种情况下,组合操作是在每个上执行的元素 序列的条目