2011-01-28 5 views
3

저는 MPI 라이브러리를 사용하고 있으며, var 타입의 MPI_status를 사용하는 동안 필드 수에 액세스하는 데 지쳤지만 컴파일러에서는 사용할 수 없다고 말합니다.
구조체에 count라는 필드가 있고 다른 필드에 size라는 필드가 있다고 주장하는 2 개의 다른 스프레드를 발견했습니다.
두 가지 모두 시도했지만 두 가지 모두 컴파일되지 않습니다. 어떤 아이디어?알 수없는 필드가 MPI_status에 있음

감사합니다.

답변

8

http://www.netlib.org/utk/papers/mpi-book/node31.html

C에서

는 상태 MPI_SOURCE, MPI_TAG 및 MPI_ERROR라는 세 개의 필드를 포함 MPI_Status 형의 구조이고; 구조 에 추가 필드를 포함 할 수 있습니다.

사용 :

MPI_Get_count(MPI_Status *status, MPI_Datatype datatype, int *count) 
+0

나는 동의한다. MSMPI에서 Microsoft HPC 버전의 MPI에는 들어오는 메시지의 크기 (바이트)로 저장되는 status.count 필드가 있습니다. 포트 이식성은 어쨌든 표준 MPI_Get_count 호출을 사용하는 것이 좋습니다. – GBBL

+0

직접 카운트에 액세스하는 것은 좋지 않습니다. 이는 MPI 표준을 위반하며 코드가 작동하지 않는 것처럼 보이더라도 깨지기 쉽도록 만듭니다. – Jeff