2017-04-26 2 views
0

저는 MPI의 새로운 프로그래머입니다. 저는 벡터로 행렬을 곱하는 간단한 프로그램을 작성하고 있습니다. 내가하는 일은 먼저 벡터를 모든 노드에 브로드 캐스트 한 다음 분산 형을 사용하여 각 노드에 행렬의 행을 전송하는 것입니다.분산 가변 길이 데이터

제 문제는 배열의 행 수가 사용 가능한 노드 수의 배수가 아니라는 것입니다. 따라서 다른 노드는 다른 수의 행을 갖게됩니다. 지금은 이것을 수행하기 위해 점대 점 통신을 루프로 사용하고 있습니다. 그러나 MPI_Scatter를 대신 사용할 수 있으면 더 좋습니다. 그러나 MPI_Scatter는 모든 노드에 동일한 길이의 데이터 만 보냅니다.

각 노드가 서로 다른 크기의 데이터 청크를 얻는 경우에도 분산 형을 사용하여 데이터를 보낼 수 있습니까?

답변

1

MPI_Scatterv이 경우 정확하게 작성됩니다. sendcounts 벡터와 오프셋 벡터를 모두 지정합니다. 제대로 작성하는 것이 약간 까다로울 수 있으므로 예가 있습니다.

+0

감사합니다. 정확히 내가 무엇을 찾고 있었는지! – PPGoodMan