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;
}