Зависание При Вызове Mpi_send

  • Автор темы Автор темы suddanila
  • Дата начала Дата начала
S

suddanila

Есть простая программа на c++ / mpi (mpich2), пересылающая массив массивов (матрицу) типа double. При размере матрицы более 90х90 при вызове MPI_Send происходит зависание приложения. При меньших размерах матрицы все работает прекрасно. Ниже фрагмент кода:

double* coefReOut = GetOneDimArray(cube->coefficientsRe, cube->coefficientsReLength, cube->coefficientsReLength);
int count = cube->coefficientsReLength * cube->coefficientsReLength;
MPI_Send(coefReOut, count, MPI_DOUBLE, nodeDest, 0, MPI_COMM_WORLD);

//получаем одномерный массив из матрицы
double* GetOneDimArray(double** array, int sizeX, int sizeY) {
double* res = (double*) malloc(sizeof (double)*sizeX * sizeY);

for (int i = 0; i < sizeX; i++) {
for (int j = 0; j < sizeY; j++) {
res[i + j * sizeX] = array[j];
}
}

return res;
}

конструктор класса Cube:

Cube::Cube(int size) {
coefficientsReLength = size;

coefficientsRe = new double*[size];
for (int i = 0; i < size; i++) {
coefficientsRe = new double[size];
for (int j = 0; j < size; j++) {
coefficientsRe[j] = 10;
}
}
}


В чем может быть проблема?
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab