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