when I tried to alloc some memory on setonix, with script:
#!/bin/bash
#SBATCH --nodes=1
#SBTACH --ntasks=28
#SBATCH --partition=work
#SBATCH --account=courses0101
#SBATCH --mem=200G
export OMP_SCHEDULE="static,3125"
gcc -m64 -fopenmp -o project ./project.c
srun ./project
I tried: -mem=200G, 120G and 100G.
my program just call one function:
int* generate_sparse_matrix(int* maxNonZero, double probability){
int* matrix = alloc_matrix(ROW_NUM,COLUMN_NUM);
int* maxValues = malloc(sizeof(int) * ROW_NUM);
return;
}
If I run this program with the script , it is fine. however if I add openmp paralel:
like:
int* generate_sparse_matrix(int* maxNonZero, double probability){
int* matrix = alloc_matrix(ROW_NUM,COLUMN_NUM);
int* maxValues = malloc(sizeof(int) * ROW_NUM);
omp_set_num_threads(GENERATE_THREAD_NUM);
#pragma omp parallel
{
//operations without allocate memory
}
}
then it gives a hint:
slurmstepd: error: Detected 1 oom_kill event in StepId=15608085.0. Some of the step tasks have been OOM Killed.
srun: error: nid002280: task 0: Out Of Memory
srun: Terminating StepId=15608085.0
GENERATE_THREAD_NUM = 1.
Is there any clue about this issue?
Btw, I always feel the setonix doesn't give us really enough resource for calculating or memroy.