MPI2允許我們創建派生的數據類型,並通過編寫堆積MPI派生數據類型的Fortran
call mpi_type_create_indexed_block(size,1,dspl_send,rtype,DerType,ierr)
call mpi_send(data,1,DerType,jRank,20,comm,ierr)
通過這樣的位置dspl_send 數據(N)的由MPI發送給他們圖書館。現在
,對於矩陣數據(M,N)我們可以通過下面的代碼發送其位置:
call mpi_type_create_indexed_block(size,M,dspl_send,rtype,DerTypeM,ierr)
call mpi_send(data,1,DerTypeM,jRank,20,comm,ierr)
即條目數據(i,dspl_send(J))是發送。
我的問題涉及1在後續mpi_send中的作用。它一直是1嗎?另一個尺寸可能嗎? MPI衍生的數據類型在互聯網上的許多文檔中都有很好的解釋,但如果允許使用其他大小,並且可以如何使用,那麼send/recv中的大小總是爲。
如果我們想要使用矩陣數據(M,N),其大小M因調用而異,我們是否需要始終在調用它時創建派生數據類型?是不可能使用DerType用於發送的矩陣數據(M,N)或數據(N,M)?
謝謝,這澄清了一些問題。但是,我仍然有** openmpi ** –