Not enough memory

From VASP Wiki
Revision as of 17:32, 2 November 2020 by Kresse (talk | contribs)

Nowadays, for standard DFT and hybrid functional calculations, memory is not an issues. Furthermore, by increasing the number of cores, the memory requirements per core can be reduced significantly.


The following things can be tried to reduce the memory requirements per core.

  • Switch of symmetrisation (ISYM=0). Symmetrisation is done locally on each node requiring three fairly arrays. VASP.4.4.2 (and newer versions) have a switch to run a more memory conserving symmetrization. This can be selected by specifying ISYM=2. Results might however differ somewhat from ISYM=1 (usually only 1/100th of an meV). Also avoid writing or reading the CHGCAR file (LCHARG=.FALSE.).
  • Use NPAR=1.

It should be mentioned that VASP relies heavily on dynamic memory allocation (ALLOCATE and DEALLOCATE). As far as we know there is no memory leakage (ALLOCATE without DEALLOCATE), however unfortunately it is impossible to be entirely sure that no leakage exists. It should be mentioned that some users have observed that the code is growing during dynamic simulations on the T3E. This is however most likely due to a "problematic" dynamic memory management of the f90 runtime system and not due to programming error in VASP. Unfortunately the dynamic memory subsystems of most f90 compilers are still rather inefficient. As a result it might happen, that the memory becomes more and more fragmented during the run, so that large pieces of memory can not be allocated. We can only hope for improvements in the dynamic memory management (for instance the introduction of garbage collectors).