벡터 요소가 n 개 있다고 가정하고이를 p 프로세스에 배포하려고합니다. 여기서 n은 p의 배수 일 필요는 없습니다. 각 프로세스는 0에서 p-1까지의 순위를가집니다. 데이터가보다 균등하게 분산되도록하기 위해 각 프로세스에 얼마나 많은 요소가 있을지 결정하는 방법은 무엇입니까?p 프로세서에서 n 요소의 벡터를 분산하는 방법
예를 들어 n = 14이고 p = 4 인 경우 [3, 3, 4, 4] 또는 [3, 4, 3, 4]와 같은 분포가 필요하지만 [3, 3, 3, 5] 또는 [4, 4, 4, 2]가 아니다.
순위 r 인 프로세스의 요소 수를 반환하는 함수 f (n, p, r)가 필요합니다.
클래식 농부/근로자 접근 방법은 어떻습니까? MPI 예 : http://www.inf.ed.ac.uk/teaching/courses/ppls/farm.c – matcheek
제 경우는 아닙니다. 처리를 위해 이미지의 행을 배포해야하므로 농민/작업자 접근 방식이 해결책이되지 않습니다. –
위의 문제 설명에서 데이터를 사용하기 때문에 실행 시간을 미리 알 수 없기 때문에 한 명의 농부, 많은 작업자 (일명 가방) 접근 방식이 이상적인 솔루션 인 것 같습니다. 그렇습니다. 행렬에서 각 행을 가져 와서 별도의 프로세서에서 실행하십시오. 코드 예제를 통해 문제에 대해 더 많은 정보를 얻을 수 있습니다. – matcheek