У меня проблема с созданием слишком большой матрицы с slurm cluster (Out of memory убит). Как я могу решить проблему? Следующий код является частью кода, относящегося к матрице распределения:
double **matrix;
int rows = 30000;
int cols = 39996;
matrix = (double**)malloc(sizeof(double*)*rows);
for (int i = 0; i < rows; i++)
matrix[i] = (double*)malloc(sizeof(double)*cols);
for(int i=0; i<rows; i++)
for(int j=0; j<cols; j++)
matrix[i][j] = 1;
Это значение (строки, столбцы) является примером, потому что я также могу иметь большее значение. Вместо этого следующий код является частью кода о Deallocation:
for (int i = 0; i < 30000; i++)
free(matrix[i]);
free(matrix);
Это мой вывод: Slurmstepd: error: обнаружено 1 событие (я) oom-kill на этапе 98584.0 cgroup. Некоторые из ваших процессов могли быть убиты обработчиком нехватки памяти cgroup. srun: ошибка: lab13p1: задача 1: недостаточно памяти