Memory leak
The problem: the memory used by Siesta increases by 0.1 GB every 3 seconds. Once it reaches the maximum memory of the compute node, Siesta crashes, with warning (from openmpi, I think): Primary job terminated normally, but 1 process returned ...
Test example is from the source package: ./Tests/si64
. For demonstration purpose, I modified the K-Points to 10x10x10, and increase the precision requirements thus it won't end instantly (see the attached file si64.fdf
)
More details about the calculation:
- The Siesta version: MaX-1.0, from https://gitlab.com/siesta-project/siesta/-/archive/MaX-1.0/siesta-MaX-1.0.tar.gz
- 8 MPI threads: mpirun -np 8 siesta_mpi < si64.fdf > si64.out
- gcc/8.3.0 + OpenMPI/3.1.4 + netlib-lapack/3.8.0 + netcdf-fortran/4.5.2 + netcdf-c/4.7.3 + scalapack/2.0.2 (also tried 2.1.0, the newest version), please check the attached
arch.make
for compilation options - the job was submitted on high-performance cluster, with slurm system
More tests:
- This issue is similar to the one reported in https://bugs.launchpad.net/siesta/+bug/1847623 -- If I add the option
Diag.ParallelOverK true
, the memory will keep near a constant. However, enabling parallel over k makes the calculation quite slow for large-size system. There is a patch in the discussion of the issue https://bugs.launchpad.net/siesta/+bug/1847623, which is not applicable to the current Siesta version. - For another system with transition metal element and more atoms (~ 400 atoms), the memory also increases.