Чтение из текстового файла в MPI - PullRequest
0 голосов
/ 26 апреля 2019

Я пытаюсь прочитать int и дважды из TXT-файла.Когда я запускаю процесс в консоли, все работает, но когда я работаю через MPI с одним процессом, он выдает ошибку:

$ ./a.out
job aborted:
rank: node: exit code [: error message]
0: DESKTOP-QUJB667: -1073740791: process 0 exited without calling finalize

Я использовал только две команды для чтения из файла:

FILE * file = fopen ("pixel.txt", "r");
fscanf (file, "% d", & numOfPixelsInFile);

Проблема чтения из файла - это только начальная стадия более широкой задачи, которую я должен выполнить.

#include <mpi.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h> 

struct Pixel 
{
    int id;
    int x;
    int y;
    float rgb[3];
};

int main(int argc, char *argv[])
{
    int  namelen, numprocs, myid;
    char processor_name[MPI_MAX_PROCESSOR_NAME];

    MPI_Init(&argc, &argv);
    MPI_Comm_rank(MPI_COMM_WORLD, &myid);
    MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
    MPI_Get_processor_name(processor_name, &namelen);

    if (myid == 0) 
    {       
        FILE* file = fopen("pixel.txt", "r");

        //Pixel arguments
        int id, x, y;
        float rgb1;
        float rgb2;
        float rgb3;

        int numOfPixelsInFile = 0;
        fscanf(file, "%d", &numOfPixelsInFile);
        printf("Num of pixels: %d\n", numOfPixelsInFile);

        for (int i = 0; i < numOfPixelsInFile; i++)
        {
            fscanf(file, "%d %d %d %e %e %e", &id,
                &x, &y, &rgb1, &rgb2, &rgb3);
            printf("%d %d %d %e %e %e\n", id, x, y, rgb1, rgb2, rgb3);
        }

        fclose(file);       
    }
    else 
    {
    }

    MPI_Finalize();
    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...