如何在MPJ中传递2D数组(除了对象形式)

时间:2013-02-05 17:33:50

标签: java mpi daemon mpj-express

我想通过MPJ发送邻接矩阵,其中一个解决方案是以对象的形式发送二维数组,第二个解决方案是将二维数组作为一维数组发送,即a [N * N]。

但是,我希望以原始形式发送二维数组 - 它是否受到MPJ的支持?如果是这样,我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

我最喜欢的方法是将2D数组作为一维对象数组发送,其中每个对象都是一维数组。

例如,如果您希望发送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命令中的偏移量和长度对应于最外层数组的索引。

希望它有所帮助!