MPI_Cart_shift: Invalid communicator

Используйте функцию MPI_Cart_shift для выполнения (циклического) смещения массива из 10 случайных целых чисел.Что-то выдает такую ​​ошибку Fatal error in MPI_Cart_shift: Invalid communicator, error stack:MPI_Cart_shift: MPI_Cart_shift(MPI_COMM_NULL, direction=0, displ=1, source=0x7ffd16becaa8, dest=0x7ffd16becaac) failed почему MPI_COMM_NULL равен NULL?

int main(int argc, char *argv[]) {
    int rank, size, id;
    MPI_Comm comm;
    int nDims = 10;
    int dims[nDims];
    int periods[nDims];
    int source, dest;
    srand(time(NULL));

    for (int i = 0; i < nDims; i++) {
        dims[i] = (rand() % 100) + 1;
        periods[i] = 1;
    }

    MPI_Init(&argc, &argv);

    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
    MPI_Comm_size(MPI_COMM_WORLD, &size);

    MPI_Cart_create(MPI_COMM_WORLD, nDims, dims, periods, 1, &comm);

    MPI_Cart_shift( comm, 0, 1, &source, &dest );


    printf("Rank %d coordinates are %d %d\n", id, source, dest);
    for(int value : dims){
        cout << value << " ";
    }
    cout << endl;
    MPI_Finalize();
    return 0;
}

Ответы (0 шт):