-
Notifications
You must be signed in to change notification settings - Fork 72
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
memory problem in Python interface with Mesh object #952
Comments
I just noted that this actually seems to be a problem of
I guess I should in general avoid using |
The issue has been identified. The problem is in the creation of attributes as variable length strings in the h5 library, which is used in the (de-)serialization of objects in triqs. This is used when calling deepcopy, mpi.bcast etc. There seems to be a memory leak in the hdf5 version 1.12.3 and 1.14.x that has not been yet reported. The issue can be resolved by using hdf version 1.10.11 or older. However, the de-serialization of tuple objects is horribly slow via h5. This was introduced when switching from boost serialization to h5 in triqs 3.2.x. @Wentzell added a fix reverting back some of these changes for simple tuples that does not require boost on the test branch https://github.com/TRIQS/triqs/tree/DEV_SERIALIZATION giving tremendous speed (factor 10 or more) improvements over the current version. We are currently preparing an issue for the hdf5 library but for now it is safer to avoid using the newer hdf versions! |
Comparing a simple Python script that uses nested objects with copies of triqs mesh objects seem to have a memory issue in the Python layer (probably not a memory leak) of TRIQS 3.3.x / unstable compared to 3.2.x!
Details
Consider the following script (uses only triqs and system libraries):
Running this with triqs 3.2.x and 3.3.x gives vastly different memory footprints:
A few more observations:
psutils
but matches what you can observe with topcompiler info
It would be great if someone else could verify this. The problem is pretty bad with larger objects holding many mesh objects etc. As you can imagine from the naming of the mock objects here the problem occurred in triqs/solid_dmft as a severe memory problem, making nodes run out of memory when dealing with larger objects.
The text was updated successfully, but these errors were encountered: