2010-03-05 48 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按行優先順序存儲數組。