MPI를 사용하여 하나의 C 구조체를 전송하는 데 필요한 코드 줄이 얼마나 많은지 나는 상당히 충격을 받았습니다.MPI와 C 구조체
미리 정의 된 데이터 유형 MPI_CHAR
을 사용하여 구조체를 전송하는 것이 어떤 경우에 효과가 있습니까? 다음 예제를 고려하십시오.
struct particle {
double x;
double y;
long i;
};
struct particle p;
MPI_Isend(&p, sizeof(particle), MPI_CHAR, tag, MPI_COMM_WORLD, &sendr);
필자의 경우 모든 프로세스는 동일한 아키텍처에서 실행됩니다. 유일한 문제는 패딩입니까?
MPI가 엄격한 요구 사항이 아니라면 Google의 프로토콜 버퍼를 사용하는 경우이 기회를 빌어서 말씀 드리고자합니다. http://code.google.com/apis/protocolbuffers/ – Stephen
패딩에 대해 걱정하지 않아야합니다. 크기가 – Anycorn
인 패딩을 포함하여 올바른 값을보고하지만 아키텍처에 따라 다를 수 있습니다. – hanno