我想通过MPJ发送邻接矩阵,其中一个解决方案是以对象的形式发送二维数组,第二个解决方案是将二维数组作为一维数组发送,即a [N * N]。
但是,我希望以原始形式发送二维数组 - 它是否受到MPJ的支持?如果是这样,我该怎么做呢?
答案 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命令中的偏移量和长度对应于最外层数组的索引。
希望它有所帮助!