我有例如由 MPI fortran 中的 2 个处理器创建的 (3,3) 矩阵。现在我想把矩阵放在块中。例如我有来自第一个处理器
sbuf=
1 2 3
4 5 6
7 8 9
和第二个处理器
sbuf=
10 11 12
13 14 15
16 17 18
现在我想像这样在主处理器中创建矩阵
1 2 3 0 0 0
4 5 6 0 0 0
7 8 9 0 0 0
0 0 0 10 11 12
0 0 0 13 14 15
0 0 0 16 17 18
我所做的是在每个处理器中创建这些矩阵并使用MPI_GATHER(sbuf, n*n, MPI_double,rbuf, n*n, MPI_double,0,MPI_COMM_WORLD,ierr)
现在这给了我 18 个元素的列表(来自 proc 1 的 9 个和来自 proc 2 的 9 个)。有人可以帮助我如何重塑或做一些事情来在master中创建那个大矩阵。帮助表示赞赏。
请注意,可以有 m 个处理器,每个处理器的大小为 n*n(每个处理器的矩阵不同)