0

我正在寻找从较大的二维子矩阵中提取二维子矩阵的最佳方法。那是。如果我有一个每个边都有 1 个鬼点的矩阵,我想提取内部矩阵。因此,如果矩阵被定义为 matrix[NX+2][NY+2] 我如何提取从 matrix[1][1] 开始到 matrix[NX+1][NY+1] 的子矩阵

我想用我认为的 MPI_Type_vector 来做到这一点,但我不确定如何用正确的步幅、块长度等来定义它。我想使用 MPI_Send 和 MPI_Recv 将新的 MPI_Datatype 发送到另一个处理器。接收处理器上的缓冲区大小为 [NX][NY] 谢谢

4

1 回答 1

0

在 Fortran 中,这将是

call mpi_type_vector(ny,nx,nx+2,mpi_double_precision,my_new_type,ierr)
call mpi_type_commit(my_new_type,ierr)

将其翻译成 C 时,我会犯更多的错误。不要忘记 Fortran 以行优先顺序存储数组。

于 2010-03-06T13:55:34.550 回答