Не могу понять, где ошибка в коде функции 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]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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