Не могу понять, где ошибка в коде функции MPI_GatherC++

Программы на C++. Форум разработчиков
Anonymous
Не могу понять, где ошибка в коде функции MPI_Gather

Сообщение Anonymous »

Я выполняю лабораторные работы в университете. Задача довольно глупая и по сути вам просто необходимо ознакомиться с технологией MPI. Необходимо перевести все элементы квадратной матрицы выше боковой диагонали в однородный массив. все работает корректно, но почему-то функция MPI_Gather выдает ошибку в предпоследнем процессе и потом в последнем, видимо пытается запихнуть данные не своего размера в 0, процесс ошибается, объясните, что я делаю не так.< /p>

Код: Выделить всё

#include 
#include 
#include 
#include 
using namespace std;

int main(int argc, char** argv) {

MPI_Init(&argc, &argv);

int rank, size;
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
int n;
int reduce;
if (rank == 0) {
cout > n;

}
MPI_Bcast(&n, 1, MPI_INT, 0, MPI_COMM_WORLD);

int* arr = (int*)calloc(n * n, sizeof(int));

int countofwrigthelements = (n - 1) * n / 2;
cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/78415806/i-cant-figure-out-where-the-error-is-in-the-code-of-the-mpi-gather-function[/url]

Вернуться в «C++»