안녕하세요, 결과 bool C 배열 (sizeResults의 크기) 및 대부분의 값이 false로 매우 스파 스입니다. 나는 그러나 그것은 매우 많은 시간이 소요되는 모든 근로자에서이 배열을 수집하는 MPI_GATHER을 사용하고 ... MPI G17 스파이크 벡터
MPI_Gather(result, sizeResults, MPI_BYTE, result_final, sizeResults, MPI_BYTE, 0, MPI_COMM_WORLD);
이 할 수있는 더 효율적인 방법은 무엇입니까? 감사합니다.
답장을 보내 주셔서 감사합니다! MPI에서 어떻게 비트 배열을 사용할 수 있습니까? 마침내 collectv와 같은 방식으로 버퍼를 사용하여 작업자가 버퍼를 사용했습니다. 벡터를 재 할당하고 gatherv로 보내는 것은 시간이 덜 걸릴 것이라고 생각하십니까? –
사실, 방법 1과 2는 정확히 동일한 효율을 가지며 (전처리 시간과 후 처리 시간을주고받습니다) 두 벡터를 연결하는 선형 변환이 존재합니다 (아래 삼각형 행렬 주요 대각선과 그 위에 그리고 그 반대의 "0"). –
@iassael : MPI는 비트 배열을 특별히 지원하지 않지만, 단순히 'MPI_BYTE'의 배열로 보낼 수 있으며 그대로 전달됩니다. 이 시나리오가 특정 시나리오에 대해 다른 방법보다 좋든 나쁘 든간에 말할 수는 없습니다. 직접 측정해야합니다. – suszterpatt