2013-02-05 12 views
3

MPJ를 통해 인접 행렬을 보내려고합니다. 그 한 가지 해결책은 객체의 형태로 2 차원 배열을 보내는 것입니다. 두 번째 해결 방법은 다음과 같습니다. 2 차원 배열을 1 차원 배열, 즉 a [N * N]으로 보냅니다.2D 배열이 MPJ에서 전달되는 방식 (객체 양식 제외)

그러나 원래 양식으로 2 차원 배열을 보내고 싶습니다. MPJ에서 지원합니까? 그렇다면 어떻게 접근해야합니까?

답변

1

내가 선호하는 접근 방식은 각 객체가 1D 배열 인 객체의 1D 배열로 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 명령의 오프셋 및 길이는 가장 바깥 쪽 배열의 인덱스에 해당합니다.

희망이 있습니다.