MPI - 如何从本地数组中获取计数到全局数组中?
MPI - How do I get counts from local arrays into global array?
我正在尝试实现一个用于计数排序的 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 standard:
Each process can provide one element, or a sequence of elements, in
which case the combine operation is executed element-wise on each
entry of the sequence.
我正在尝试实现一个用于计数排序的 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 standard:
Each process can provide one element, or a sequence of elements, in which case the combine operation is executed element-wise on each entry of the sequence.