-
Notifications
You must be signed in to change notification settings - Fork 217
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
openPMD adios1 output defective #3378
Comments
This error might possibly be caused by using ADIOS1 instead of ADIOS2 - this will be my next check. @benjha This might effect the data set, I created for your workshop. Did you try reading it already? I will test it as soon as possible. |
@PrometheusPi weird, I do not see a place in openPMD-api where such an error message (or rather word "characteristic") is thrown. |
@sbastrakov I had the similar issue - I was looking through the openPMD-api warnings and found nothing. |
With my self-build openPMD-api 0.12.0 the same error occurred (on hemera). |
Perhaps this error comes from ADIOS itself. E.g. this may be related: https://github.com/ornladios/ADIOS/blob/f33031ee206d552b286674d0f1641b9aca6b9100/src/core/adios_bp_v1.h#L24 |
@benjha This error occurs in the data I provided you. I will switch to adios2 for your your data instead. |
I unfortunately don't have a lot of time to look into this in detail right now, but two observations:
If this doesn't help, I'll probably find some time for some error-tracking on wednesday. |
Ah, that's a nice observation from @franzpoeschel ! |
So in PIConGPU output only the |
If I use |
Despite the issue with the openPMD-api python module, the backend seems to produce valid ADIOS(1) output. Using |
Update: there are no issues loading the openPMD plugin data via |
@benjha The files provided for your workshop are valid ADIOS1 files. |
Is it possible that you are writing ADIOS1 files and that the Hemera module does not support ADIOS2? Let's request ADIOS 2.6.0 there and an openPMD 0.12.0 module. If you load ADIOS1 data with openPMD-api, better "prefer" it's ADIOS1 backend for
There are a thousand little nimbles from ADIOS internal compression to data model in openPMD that I cannot guarantee would work in a round-trip right now. Note: ADIOS1 is effectively deprecated and end-of-life. I only keep the backend around so we can read old ADIOS1 plugin data. Please do not create new ADIOS1 data if not absolutely necessary. |
@ax3l Thanks for pointing out the missing system variable. |
@benjha If reading our openPMD ADIOS1 output, setting |
Did you check if hemera has only ADIOS1 or both 1 and 2? I am just a little confused, as the linked documentation suggests in the former case |
@sbastrakov I agree with you - from the documentation I thought that this only effects writing new files and that the openPMD-api is capable of determining given files on its own (or at least give a understandable warning). For PIConGPU, I just used the default ADIOS 1 - 1.13.1 on hemera. For python, I build via conda, thus both ADIOS1 and ADIOS2 are available. I am not sure to what ADIOS the openPMD module links to, most likely the 1.13.1. As far as I know, hemera only provides ADIOS 1 1.13.1 as module. |
Btw hemera also has python support in the same module. E.g. this works out of the box once the module (and its dependencies) is loaded, and outputs
|
ADIOS2 is the default for
ADIOS might have missed a chance to call their ADIOS1 files I think that ADIOS2 in newer versions actually does not care about the file name anymore at all. We could investigate to just call them ".bp4" on our own to relax this confusion. Maybe we can also probe a sample file before read for its file magic and try to force ADIOS1 for reads... I'll ask upstream (ADIOS devs) for advise. Just for curiosity you could make a small reproducer ADIOS1 file (BP3) available and report it as an issue in openPMD-api for volunteers to jump in. I just tried it and cannot see the problem immediately when I try to read example ADIOS1 files through the ADIOS2 engine in openPMD-api. Maybe someone has time to investigate the exact error and we can work-around it a little. But rather switch the backend for now.
Please request an ADIOS 2.6.0 module on Hermera and then they can build openPMD-api against it. There is no ADIOS2 support on Herma's openPMD-api module: TL;DR
|
As mentioned before, the issue cam from the fallback option using ADIOS1. With #3393 this has been solved on hemera. I will thus close this issue. |
When writing openPMD output using the openPMD plugin and the
bp
output format (ADIOS) on hemera, PIConGPU creates defective output files at least under the following condition:openpmd/0.11.1-cuda102
)8.cfg
TBG_macros.cfg
When loading the output via
openpmd-api
in python, the following error occurs:the following error is given (using openPMD-api 0.12.0-alpha):
cc'ing @Ilomi
I will compile my own openPMD-api and avoid the system module on hemera as a first step.
@franzpoeschel @sbastrakov @psychocoderHPC How did you read the openPMD output in PIConGPU
The text was updated successfully, but these errors were encountered: