2013-02-05 17 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命令中的偏移量和长度对应于最外层数组的索引。

希望它有帮助!