0

我有例如由 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(每个处理器的矩阵不同)

4

0 回答 0