首页 > 解决方案 > MPI_Allgather 到同一个数组但在不同的索引

问题描述

考虑一下我有以下进程,它们有自己的某个大小的数组的副本(让长度为 4),并且每个进程都计算了一些值并根据压缩的行/列存储格式将其存储在数组中。

A = [ 。. . .]

P0: A[ 1 . 3.]

P1:A[。2. 4]

  1. P1 发送 A 到 P0
  2. P0 结合 P1.A 和 P0.A => [1 2 3 4]

有没有办法让我合并这些数组,例如使用某种类型的 AllGather?永远不会有任何重叠的值要合并。

我目前的方法是对每个进程使用 do MPI_Send(indexes_used, to P0),然后将 A 数组与另一个 MPI_Send 一起发送。

标签: cmpi

解决方案


如果每个进程上的空值设置为零,您只需将数组与MPI_Allreduce.


推荐阅读