MPI_Allgather 到同一个数组但在不同的索引
MPI_Allgather to the same array but at different indexes
考虑我有以下进程,它们有自己的某个大小的数组副本(长度为 4),每个进程都计算了一些值并根据压缩 row/col 将其存储在数组中存储格式。
A = [ . . . .]
P0: A[ 1 . 3.]
P1: A[. 2. 4]
- P1 将 A 发送到 P0
- P0 结合 P1.A 和 P0.A => [1 2 3 4]
有没有办法合并这些数组,例如使用某种类型的 AllGather?永远不会有任何重叠的值要合并。
我目前的做法是对每个进程使用do MPI_Send(indexes_used, to P0),然后用另一个MPI_Send.
发送A数组
如果每个进程的空值都设置为零,您可以将数组加起来 MPI_Allreduce
。
考虑我有以下进程,它们有自己的某个大小的数组副本(长度为 4),每个进程都计算了一些值并根据压缩 row/col 将其存储在数组中存储格式。
A = [ . . . .]
P0: A[ 1 . 3.]
P1: A[. 2. 4]
- P1 将 A 发送到 P0
- P0 结合 P1.A 和 P0.A => [1 2 3 4]
有没有办法合并这些数组,例如使用某种类型的 AllGather?永远不会有任何重叠的值要合并。
我目前的做法是对每个进程使用do MPI_Send(indexes_used, to P0),然后用另一个MPI_Send.
发送A数组如果每个进程的空值都设置为零,您可以将数组加起来 MPI_Allreduce
。