3
我想通過MPJ發送鄰接矩陣,其中一種解決方案是以對象的形式發送二維數組,第二種解決方案是將二維數組作爲一維數組發送,即[N * N]。2D數組如何在MPJ中傳遞(除了對象形式)
但是,我希望以原始形式發送二維數組 - 它是否由MPJ支持?如果是這樣,我應該如何處理它?
我想通過MPJ發送鄰接矩陣,其中一種解決方案是以對象的形式發送二維數組,第二種解決方案是將二維數組作爲一維數組發送,即[N * N]。2D數組如何在MPJ中傳遞(除了對象形式)
但是,我希望以原始形式發送二維數組 - 它是否由MPJ支持?如果是這樣,我應該如何處理它?
我最喜歡的方法是將二維數組作爲一維對象數組發送,其中每個對象都是一維數組。
例如,如果要發送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命令中的偏移量和長度對應於最外層數組的索引。
希望它有幫助!