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命令中的偏移量和长度对应于最外层数组的索引。
希望它有帮助!