2012-03-18 5 views

답변

4

아니요 - MPI_Type 명령에는 통신이 없으며 완전히 로컬입니다. 특히, 프로세스는이 새로운 유형의 정의에 반드시 동의해야합니다.

등급 1이 새로운 데이터 유형을 등급 0에 보내는 경우, 동의해야하는 것은 유형의 레이아웃이 아니라 데이터의 양입니다. 예를 들어, 순위 1이 로컬 배열을 모두 0 (순위 2d)으로 보내고 있다고 가정하면 NX * NY float의 MPI_Type_contiguous를 보낼 수도 있습니다. 그러나 순위 0은이를 더 큰 전역 배열로 수신 할 수 있습니다. Subarray 유형의 전역 유형으로 수신하도록 선택할 수 있습니다. 이러한 데이터 유형의 이름이 같더라도 전체 데이터 양이 동일하면 다른 최종 레이아웃을 메모리에 설명 할 수 있습니다.

3

MPI 데이터 유형은 데이터 유형을 생성하는 프로세스의 비공개 비즈니스입니다. 그들은 일치시킬 필요가 없습니다. 사실, 수신 프로세스가 송신 프로세스와 다른 유형 맵을 사용할 수 있습니다 (물론 메모리 손상을 초래하지 않는 한). 따라서 Define 또는 Commit을 사용할 때 동기화가 전혀 없습니다.

+0

+1 : 그냥 저를 때려주십시오! :) –

+0

@Jonathan Dursi 둘 다 나에게 백만 달러의 감사를받을 가치가있다 !!! –