2013-02-05 16 views
3

我想通過MPJ發送鄰接矩陣,其中一種解決方案是以對象的形式發送二維數組,第二種解決方案是將二維數組作爲一維數組發送,即[N * N]。2D數組如何在MPJ中傳遞(除了對象形式)

但是,我希望以原始形式發送二維數組 - 它是否由MPJ支持?如果是這樣,我應該如何處理它?

回答

1

我最喜歡的方法是將二維數組作爲一維對象數組發送,其中每個對象都是一維數組。

例如,如果要發送int A[M][N],你可以簡單地做

MPI.COMM_WORLD.Send(A, 0, M, MPI.OBJECT, TARGET_ID, MESSAGE_ID); 

要接收,可以先建立一個緩衝區,然後使用MPI接收:

int buffer[][] = new int[M][N]; 
MPI.COMM_WORLD.Send(buffer, 0, M, MPI.OBJECT, SENDER_ID, MESSAGE_ID); 

注意, MPI命令中的偏移量和長度對應於最外層數組的索引。

希望它有幫助!