2011-04-13 6 views
0

매트릭스 컬럼에서 최대 값을 찾기위한 순차 코드가 있습니다. 이 행렬은 심지어 5000 x 5000 일 수 있기 때문에 MPI에서 속도를 높이려고합니다. 지금이 방법을 모르겠지만 열 (어쩌면 블록 매핑)에서 항목을 배포하는 함수 MPI_Scatter와 모든 프로세스 (최대 3 프로세스)에서 최대 값을 얻은 다음 MPI_Gather를 조회했습니다. .. 적은 컴퓨팅 시간에 이점이있을 수 있다고 생각하십니까? 그렇다면 누군가가 나를 시작할 수 있습니까?MPI - 매트릭스 컬럼에서 최대 카운팅

답변

3

행렬의 최대 항목 (또는 행렬의 일부)을 알아 내고 싶습니까?

그렇다면 가장 쉬운 방법은 매트릭스를 다른 프로세스로 분할하고 각 프로세스가 할당 한 부분의 최대 값을 검색 한 다음 MPI_Allreduce을 사용하여 비교합니다. 최대 값을 보낼 수 있습니다. 각 프로세스마다 다른 값을 갖는 변수.

전체 행렬 또는 열만 처리하더라도이 방법은 항상 적용될 수 있습니다. 영역을 다른 프로세스로 분할하는 좋은 방법에 대해 생각하면됩니다.

물론 이것은 특정 행렬 크기 이상에서만 계산 속도를 향상시킵니다. 당신이 10 x 10 매트릭스를 다루고 있고 그것을 3 개의 프로세스로 나누고 싶다면, MPI의 오버 헤드가 병렬 처리의 이득보다 큽니다. :)