MPI 기본 데이터 유형은 MPI_BYTE 및 MPI_PACKED를 제외하고는 호스트 언어의 데이터 유형에 해당합니다. 내 질문은 그 MPI 기본 데이터 형식을 사용하면 어떤 이점이 있습니까? 또는 이와 동등하게, 왜 호스트 언어 데이터 유형을 사용하는 것이 좋지 않은가? MPI 데이터 유형의 이점은 무엇입니까?
나는 슬라이드 (31)에서 윌리엄 Gropp 등으로 튜토리얼을 읽고 "왜 데이터 유형", 그것은 말한다 : 모든 데이터 유형으로 표시되어- 때문에, MPI를 구현이 매우으로 시스템에서 프로세스 간 통신을 지원할 수 서로 다른 메모리 표현과 기본 데이터 유형의 길이 (이기종 통신). 메모리의 데이터의
- 지정 응용 지향 레이아웃
- 는
- 특별한 하드웨어를 사용할 수있게 구현 메모리 대 메모리 카피를 감소 (분산은/수집) 때
(http://www.mcs.anl.gov/research/projects/mpi/tutorial/mpiintro/ppframe.htm)
설명을 이해하지 못합니다. 첫째, 기본 데이터 유형이 다른 경우 기본 MPI 데이터 유형이 기본 언어의 기본 데이터 유형 (기본 데이터 유형)에 해당하므로 MPI 데이터 유형을 사용하면 차이를 해결할 수없는 이유는 없습니다. 둘째로, 왜 메모리에서의 어플리케이션 지향적 인 레이아웃의 레이아웃은 언급 된 두 가지 이점을 가지고 있습니까?
본인의 원래 질문에 답하는 모든 대답이 허용됩니다. 어떤 대답이라도 윌리엄 그 프프 (William Gropp)의 설명에 대한 제 질문은 해결됩니다.
마지막 예를 들어 보지 못했습니다. 'd' 변수가 하나의 프로세스에서 다른 프로세스로 보내질 변수라고 가정 해 봅시다. 'd'를 정의 할 때'double d'가 아닌'MPI_DOUBLE d'를 사용합니다. 맞습니까? – user2196452
프로그램에서'double d '를 사용합니다. MPI_Send의 프로토 타입을 보자. 전송할 버퍼로'void * '를 사용합니다. 또한 MPI_Datatype을 요청하여 버퍼에있는 내용을 알려줍니다. MPI_DOUBLE을 두는 곳입니다. – Adam
무슨 뜻인지 알 겠어. 즉, 프로그램에서'double d;'또는'MPI_DOUBLE d;'를 사용할 수 있습니다 (컴파일러가 불평하지 않는다면). mem-to-mem 복사본을 줄이고 특수 하드웨어를 사용할 수 있도록하는 두 가지 이점에 대한 통찰력이 있습니까? – user2196452