2010-03-05 23 views
0

我正在寻找从更大的2-D子矩阵中提取2D子矩阵的最佳方法。那是。如果我有一个在每个边上有1个鬼点的矩阵,我想提取内部矩阵。所以如果矩阵定义为矩阵[NX + 2] [NY + 2],我该如何从矩阵[1] [1]中去掉矩阵[NX + 1] [NY + 1]从更大的2D矩阵中提取2D子矩阵的MPI代码是什么?

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

回答

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按行优先顺序存储数组。