-
Notifications
You must be signed in to change notification settings - Fork 3
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
Towards Large Meshes #59
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, I will test it by trying to generate large meshes for the Texascale.
Thanks, that sounds great! About the compression a few notes maybe still: using any of the deflate compression options will require HDF5 to be compiled with that enabled (both for writing and reading). I'd guess that many of the clusters have enabled it, but in case something throws an error, that could be the reason why. Other than that, a small note regarding the compression; I had tried
One more thing to add is maybe, the scaleoffset compression does not go well with the
Also, the |
How would the compression work then, when integrating it into SeisSol? Does it work well with the parallel I/O? Naively, I would assume that it chunks the data and then compresses it? We might also consider this then for the output writing? |
Yup, that's exactly how it works. But the chunking needs to be done explicitly. Cf. the given h5repack command: we need to change the data layout from contiguous to chunked. As I understand it, each chunked is then compressed. Apparently it's supported with parallel IO, as long as we don't also use additional HDF5 data transforms (which we shouldn't... I think). For an example in code, cf. e.g. Lines 335 to 346 in 7748c25
(and yes, it's still a lot of duplicated code in there at the moment—maybe it can be slightly generalized as in PUMLcube SeisSol/Meshing#49 )
That's a good idea—if we work on IO nodes which support that, then why actually not? |
As stated, this PR adds large mesh support—or rather, it corrects the few spots where that wasn't the case yet (that is, the Simmodeller should have been able to do that already). For the large meshes to work, this PR requires a SCOREC/PUMI version which is newer than v2.2.7; seemingly only directly using
master
works right now for that (i.e. one which would not have worked before #58 ). Older PUMI versions are still supported, and PUMgen should work as usual (cf. #58 ), but they probably won't support larger meshes, due to the element data type in APF.Some additional features:
h5repack
and the resulting size is roughly the same as storing a PUML mesh in a ZIP file)Some of the older mesh formats may break during this update and may be removed some time soon-ish.