【问题标题】:MPI - How do I get counts from local arrays into global array?MPI - 如何从本地数组中获取计数到全局数组中?
【发布时间】:2017-04-25 15:21:34
【问题描述】:

我正在尝试实现一个用于计数排序的 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}

【问题讨论】:

    标签: c++ arrays mpi global local


    【解决方案1】:

    实际上MPI_Reduce 正是您所需要的。它不会得到数组的总和,而是每个单元格的总和。或者引用MPI 3.1 standard

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

    【讨论】:

    • 非常感谢,我不知道为什么我不明白它对数组中的每个元素都执行了此操作。我的思想仍然停留在 openmp 世界中。
    猜你喜欢
    • 2014-03-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 2018-02-19
    • 2013-02-24
    • 2011-05-05
    • 1970-01-01
    • 2011-11-24
    相关资源
    最近更新 更多