2015-01-18 6 views
0

MPI에 대한 질문이 있습니다. 프로세스에 바이너리 파일을 동시에 읽으 려하므로 MPI_File_iread를 사용하려하지만 예상대로 작동하지 않고 무엇이 잘못되었는지 알지 못합니다.MPI_File_iread가 올바르게 작동하지 않습니다.

죄송합니다. 질문의 형식이 올바르지 않은 경우 여기를 클릭하십시오.

#include "mpi.h" 

[...] 

MPI_Request request; 
MPI_Status status; 
MPI_File fp; 
MPI_File_open(MPI_COMM_WORLD, file_name, MPI_MODE_RDONLY, MPI_INFO_NULL, &fp); 

MPI_File_iread(fp, NINTCI, 1, MPI_INT, &request); 
MPI_Wait(&request, &status); 

printf("%d\n", *NINTCI); 
MPI_Barrier(MPI_COMM_WORLD); 

올바른 모든 프로세스에 대한 0이어야한다 인쇄 수 있지만, 대신 내가 얻을 : 여기

내 코드입니다 (NINTCI는 정수 포인터이며, FILE_NAME 이미 파일 이름을 가진 char 배열입니다) 다음과 같은 임의의 숫자 (8 개 프로세스) : 나는 MPI_File_read와 MPI_File_iread를 교체하고 결과가 올바른지 MPI_Wait를 제거하면

-1475867408 
1495223536 
-219489040 
-840278800 
629550320 
1309351152 
-321049360 
21273840 

재미 것입니다.

누구나 내가 뭘 잘못하고 있는지 아이디어가 있습니까? 미리 감사드립니다!

+0

어떤 MPI 구현을 사용합니까? –

답변

1

오류 코드를 확인하지 마십시오. 파일이 존재합니까? 적절한 사용 권한이 있습니까? 오류를 확인하면 이러한 모든 답변과 더 많은 답변을 얻을 수 있습니다.

MPI 구현에서 의미있는 정보를 얻는 방법에 대한 예제는 How to use and interpret MPI-IO Error codes?을 참조하십시오.

관련 문제