Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

out of memory #13

Open
gmm05126 opened this issue Dec 20, 2021 · 2 comments
Open

out of memory #13

gmm05126 opened this issue Dec 20, 2021 · 2 comments

Comments

@gmm05126
Copy link

Dear all,
Do you see a way to reduce RAM usage for unfolding large cases? I am running out of 512GB of RAM.
Thanks,
Martin

@stepan-tsirkin
Copy link
Member

@gmm05126 , just for reference, what is the size of your system - number of atoms, bands, planewaves, kpoints in the path? What is the size of the .save directory or WAVECAR file?

One way is to use Ecut parameter, to through away higher plane waves, but one should be reasonable in that, as the unfolding weihts might be inaccurate.

Also, if you have many bands below/above the energy range of interest, you may exclude them uaing IBstart, IBend parameters

Other way is to unfold the path piecewise.

The problem is that the code loads all wavefunctions at a time, although it is not really needed. There is a way to modify irrep so that it loads wavefunctions for 1 kpoint, processes them, and then stores only the needed information, clearing the large arrays. But that needs to be done

@stepan-tsirkin
Copy link
Member

@gmm05126 ,
could you try this branch of banduppy in combination with this branch of irrep.

Here the banduppy.Unfolding.unfold() method receives an extra parameter saveWF, which is False by default.

def unfold(self,bandstructure,suffix="",write_to_file=True,saveWF=False):

if saveWF==False the wavefunctions are read only when needed and removed after processing (not saved in memory).

see example :

unfold_path.unfold(bands,break_thresh=0.1,suffix="path",saveWF=True)
unfold.unfold(bands,suffix="GL",saveWF=True)

This may make the code a bit slower, if the same SCBZ point is unfolded to several PCBZ points, but hopefully not much, and will require less memory.

Please, try and tell me how it goes (I did not test much myself, so please report any bugs arising)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants