MPI_File 与带有 fscanf 的 "File" 的参数不兼容
MPI_File is incompatible with parameter of the "File" with fscanf
我正在尝试将我的程序与 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 读取文件?
MPI_File_open
与 MPI_File
一起工作,fscanf()
与 FILE *
一起工作并且没有互操作性。
你必须要么
- MPI_File_open()
和 MPI_File_read()
- 或者坚持 fopen()
和 fscanf()
MPI-IO 真正的潜力在进行集体 IO 时被释放(例如 MPI_File_read_all()
)并且没有 MPI_File_scanf()
这样的东西,所以除非你愿意 MPI_File_read_all()
和 sscanf()
,您可能希望坚持使用非 MPI 子例程。
我正在尝试将我的程序与 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 读取文件?
MPI_File_open
与 MPI_File
一起工作,fscanf()
与 FILE *
一起工作并且没有互操作性。
你必须要么
- MPI_File_open()
和 MPI_File_read()
- 或者坚持 fopen()
和 fscanf()
MPI-IO 真正的潜力在进行集体 IO 时被释放(例如 MPI_File_read_all()
)并且没有 MPI_File_scanf()
这样的东西,所以除非你愿意 MPI_File_read_all()
和 sscanf()
,您可能希望坚持使用非 MPI 子例程。