Is there any way to get a memory estimate for VASP calculations either directly or indirectly (based on some example calculation)? For example, I would like to be able to predict based on my settings how much memory is needed within about a GB per core.
1 Answer
This is difficult to calculate in detail, but the largest memory objects are probably the Kohn-Sham wavefunctions and the pseudopotential projectors (if you're representing them in reciprocal-space). In order to calculate their memory requirements, you need to know the number of:
Plane-waves, $N_p$
Bands, $N_b$ (all the bands you're calculating, i.e. including conduction bands)
k-points, $N_k$
Spins, $N_s$
Total pseudopotential projectors, $N_{proj}$
The wavefunction coefficients will be stored as double-precision complex values, meaning 16 bytes each. The total storage for the wavefunction is thus,
RAM for $\psi = 16\times N_p\times N_b\times N_k\times N_s$ bytes;
RAM for projectors $= 16\times N_p\times N_{proj}\times N_k\times$ bytes.
(Assuming that the pseudopotentials are not spin-dependent.)
This is the total storage for each object; as a rough guide, you could divide them by the number of processes to get the memory requirements per process.
-
1$\begingroup$ I was thinking something like this should be correct, I was really hoping something like CASTEP's dry run was available in VASP but I can't seem to find it either because I don't know where to look or its not available. $\endgroup$ Dec 13, 2021 at 16:15