How to estimated required memory?

Dear GULP developers and users,

I would like to compute phonon band structures of a model which contains about 20,000 atoms. Assume there are only 20 k-points. How do we estimate the memory it needs? Is there any other factor affects the consumption of memory except for the number of atoms? Also, is the total wall time proportional to the dimension of the dynamical matrix, which is 3N by 3N martrix?

I believe I need a supercomputer with large memory to do the calculation, but I am not sure how much memory I need. Any suggestion will be greatly appreciated. Thank you!

Best

Jonas

Hi Jonas,
I think my first comment here would be are you sure it’s necessary to compute with multiple k points for this number of atoms? Usually for this size of system the bands will be very flat and the gamma point pretty much captures everything. So unless you are doing something unusual, you would probably be wasting a lot of computer time by running 20 k points since they’ll probably all be nearly identical.
Anyway, to the question: If you are forming a complex dynamical matrix then your memory will be dominated by 3N x 3N matrix of complex*16 & so you’ll need about 60 GB of memory. In terms of cost, matrix diagonalisation will dominate and so for a dense matrix this scales approximately as the cube of the size of the problem. NB for large matrices diagonalisation can face numerical issues so you should always consider things carefully before trying to do this.
Regards,
Julian

Hi Julian,

Thank you for your reply. The phonon dispersion curves look flat at high frequency. In my study, I only need few bands at low frequency along a certain direction in k space. I am not sure if GULP can skip the calculation for the bands at high frequency. If so, it can definitely save me a lot of computer time.

As for the calculation of the required memory, can you please tell me more details about your calculation? Let’s say there are 20 k points. Do we still need 60GB memory or 60*20 = 1200GB memory? Thank you in advance for your help.

Best

Jonas

Hi Jonas,
While some sparse solvers allow you to compute only selected bands, GULP is working with a dense problem and so it solves for all frequencies at present. I’m surprised the unit cell of your material is so large! Anyway, for the memory the k points are overwritten and so it would be ~1 x 60 GB.
Regards

Julian