从较大的2D矩阵中提取2D子矩阵的MPI代码是什么?

时间:2010-03-05 19:08:50

标签: arrays vector types mpi

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

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

1 个答案:

答案 0 :(得分: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以行主顺序存储数组。