我正在尝试将程序与MPI并行化。
MPI_File fh;
MPI_File_open(MPI_COMM_WORLD,"input.txt",MPI_MODE_CREATE|MPI_MODE_RDONLY, MPI_INFO_NULL, &fh);
if(rank == 0){
nwords = -1;
do {
err = fscanf(fh, "%[^\n]\n", word[++nwords]);
} while( err != EOF && nwords < maxwords);
printf("Read in %d words\n", nwords);
}
然后我收到此错误。
warning #167: argument of type "MPI_File" is incompatible with parameter of type "FILE *__restrict__"
err = fscanf(fh, "%[^\n]\n", word[++nwords]);
如何使用MPI_File_open读取文件?
答案 0 :(得分:1)
MPI_File_open
与MPI_File
一起使用,而fscanf()
与FILE *
一起使用,并且没有互操作性。
您必须
-MPI_File_open()
和MPI_File_read()
-或坚持使用fopen()
和fscanf()
进行集体IO(例如MPI_File_read_all()
)时,MPI-IO的真正潜能得以释放,并且没有MPI_File_scanf()
这样的东西,因此除非您愿意MPI_File_read_all()
和{{1} },您可能希望坚持使用非MPI子例程。