2013-04-29 4 views
0

하나의 MPI_SEND에 행렬의 행과 다른 행의 열을 보낼 수있다. 어떻게이 절차를 수행 할 수 있는가?매트릭스의 행과 열을 보내라. MPI_SEND

MPI_SEND (row and column of the matrix ...) 
+0

C/C++에서 MPI를 사용하여 행렬을 보내는 방법은 다음 질문/답변에 설명되어 있습니다. [1] (http://stackoverflow.com/questions/10788180/sending-columns-of-a-matrix-using- mpi-scatter/10788351 # 10788351), [2] (http://stackoverflow.com/questions/5371733/how-to-mpi-gatherv-columns-from-processor-where-each-process-may-send-different/5373104 # 5373104), [3] (http://stackoverflow.com/questions/5512245/mpi-scatter-sending-columns-of-2d-array), [4] (http://stackoverflow.com/questions/16151973/mpi- 송수신 - 열) –

답변

1

은 행 주요 순서로 작동 ++ C/C 때문에, 당신은 1 차원 벡터에서 2D 매트릭스를 선언 할 수 있습니다 간단한 규칙을 사용하여 항목에 액세스 할 수 있습니다. A가 mxn 크기이고 B가 벡터라고 가정합니다.

A[i][j] = B[i*n+j]; 

그러나 C++로 코딩하는 경우 매트릭스 개체를 정의하고 MPI에서 이러한 개체를 보내보십시오. 자신 만의 MPI_Data_Type을 만들어야합니다.

+0

이 프로토 타입을 만드는 방법에 대한 힌트를 줄 수 있습니까? – Max

+0

당신은 그 대상을 의미합니까? 개체 지향 프로그래밍 (OOP)에 대한 지식에 따라 다릅니다. "C++ 행렬 객체"를 살펴보십시오. 너가 서두르면, 어쩌면 너는이 길을 따라 가면 안된다. 귀하의 응답을 다시 한 번 읽는 것은 MPI_ 데이터 _ 유형을 언급하고있는 것일 수 있습니다. mpi 유형의 커밋을 사용하여 자신 만의 데이터 유형을 만들 수 있습니다. PETSc [link] (http://www.mcs.anl.gov/petsc/)를 보시면 통신 관련 세부 정보를 숨길 수 있습니다. – brkorkut

+0

나는 서두르고 있지 않다, 나는 너를 탈선시키지 않고있다? – Max

관련 문제