MPI_File несовместим с параметром «Файл» с помощью fscanf - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь распараллелить мою программу с 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?

1 Ответ

0 голосов
/ 04 октября 2018

MPI_File_open работает с MPI_File, а fscanf() работает с FILE *, и совместимость отсутствует.

Вы должны либо - MPI_File_open() и MPI_File_read() -, либо придерживаться fopen() и fscanf()

Реальный потенциал MPI-IO высвобождается при выполнении коллективного ввода-вывода (например, MPI_File_read_all()), и не существует такой вещи, как MPI_File_scanf(), поэтому, если вы не желаете MPI_File_read_all() и sscanf(), вы можете придерживаться подпрограмм не MPI.

...