-
Notifications
You must be signed in to change notification settings - Fork 51
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
[Discussion] Auxiliary backend for statistics? #937
Comments
I am not sure if this helps a lot. It could be useful for debugging but requires deep knowledge about the openPMD backend used e.g. ADIOS2. |
We discussed this last week with the ADIOS team since we encounter this already for a bit (ornladios/ADIOS2#1814) and had a quite verbose solution in ADIOS1; @franzpoeschel will post the minutes here. |
Summing up what was discussed in VCs so far:
|
As it seems, the solution for our original problem will be found within ADIOS2. Thanks to @franzpoeschel and @ax3l for picking up the issue! |
Hei, in PIConGPU we encountered an issue with ADIOS2 ComputationalRadiationPhysics/picongpu#3506 which may find a generally applicable solution within openPMD-api.
ADIOS2 uses
std::vector
as buffers, and continuously resizes the buffer from a configured initial size as long as data is written into it.This leads to the unfortunate fact, that only half of a compute node's memory can be used for data output, as the rest needs to be kept free in order to allow resizing. See the ADIOS2 issue ornladios/ADIOS2#2629, too.
Additionally, multiple resizing results in a performance penalty.
The question came up, whether it would be generally useful to implement an auxiliary statics backend in openPMD (or ADIOS2) which e.g. counts the required memory.
Thus one could allocate a buffer with the correct size right from the start and avoid resizing.
cc'ing @franzpoeschel @psychocoderHPC
The text was updated successfully, but these errors were encountered: