Not enough memory: Difference between revisions
No edit summary |
No edit summary |
||
Line 3: | Line 3: | ||
The following | The following steps can be taken in order to reduce the memory requirements per core. | ||
*For large many atom systems, increase {{TAG|NCORE}} to larger values (say to 4, 8 or even the number of | |||
*For large many | cores per node or socket). This allows to decrease the memory | ||
requirements per core in | requirements per core in particular for the storage of the non-local projectors. Furthermore, real space projection | ||
{{TAG|LREAL}}= A decreases the required memory per core. | {{TAG|LREAL}}= A decreases the required memory per core. | ||
*{{TAG|KAR}} allows to distribute the k-points over cores. Unfortunately, only the calculations are | *{{TAG|KAR}} allows to distribute the k-points over cores. Unfortunately, only the calculations are | ||
Line 12: | Line 12: | ||
{{TAG|KAR}}=1 results in the smallest memory requirements per core (but the slowest calculations, since | {{TAG|KAR}}=1 results in the smallest memory requirements per core (but the slowest calculations, since | ||
VASP needs to rely on other less efficient parallelization strategies). | VASP needs to rely on other less efficient parallelization strategies). | ||
*Switch of symmetrisation ({{TAG|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 {{TAG|ISYM}}=2. Results might however differ somewhat from {{TAG|ISYM}}=1 (usually only 1/100th of an meV). Also avoid writing or reading the {{TAG|CHGCAR}} file ({{TAG|LCHARG}}=''.FALSE.''). | |||
A final hint is in place. At some key places the code writes out the required memory per core. Please search | A final hint is in place. At some key places the code writes out the required memory per core. Please search |
Revision as of 17:45, 2 November 2020
Nowadays, for standard DFT and hybrid functional calculations, memory is usually not an issues. Furthermore, by increasing the number of cores, the memory requirements per core can be reduced significantly.
The following steps can be taken in order to reduce the memory requirements per core.
- For large many atom systems, increase NCORE to larger values (say to 4, 8 or even the number of
cores per node or socket). This allows to decrease the memory requirements per core in particular for the storage of the non-local projectors. Furthermore, real space projection LREAL= A decreases the required memory per core.
- KAR allows to distribute the k-points over cores. Unfortunately, only the calculations are
distributed, but the storage of the orbitals is not distributed over cores. This means that using KAR=1 results in the smallest memory requirements per core (but the slowest calculations, since VASP needs to rely on other less efficient parallelization strategies).
- 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.).
A final hint is in place. At some key places the code writes out the required memory per core. Please search the lines
total amount of memory used by VASP MPI-rank0
and inspect how much memory VASP uses per core.