-
Notifications
You must be signed in to change notification settings - Fork 126
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
Operators do not work with HDF5 #3942
Comments
The HDF5 engine does not support any operators. The HDF5 engine is using the parallel HDF5 library functions to write/read data as is and produce a proper HDF5 file readable by HDF5 tools. We have no intention to somehow match an operator's code to existing HDF5 functions. We could use operators to transform the data before writing and inverse transform the data at reading (by calling the operator code from the HDF5 Engine of ADIOS), and use HDF5 file format of storing the transformed data. However, the result file would not be readable by HDF5 tools, only by ADIOS. Hence, we have no intention to pursue this either. |
Thanks Norbert - I appreciate that it's not possible to match the operator's code to HDF5, since operators are arbitrary C++ functions, but why not just store the transformed bytes? I take your point about transformed data being more difficult to use but that is a problem that users have to ask for. Silently ignoring requested operations is probably worse. There is no mention I could see in the docs about HDF5 not supporting this. The SoftwareX paper says an Operator "Applies Variable data operations inside an Engine", so you can see why I am surprised that this is not the case... I would suggest that an exception should be thrown if the HDF5 engine encounters a variable with associated operators. |
I briefly attempted a solution using HDF5 filters but this was not trivial. Particular problems were:
Instead I have made PR #3951 to error if the user does something unsupported. Closing that PR and updating docs will resolve this issue. Thanks |
PR #3951 is merged. Issue closed. |
Describe the bug
Plugin operators do not run when the engine is set to HDF5.
To Reproduce
Expected behavior
HDF5 file contains encrypted data
Desktop (please complete the following information):
Additional context
A brief search of the ADIOS source suggests that operators are only called by the BP, BP5, and DataMan engines. This is perhaps by design, in which case this is a documentation bug / paper erratum (no mention of this limitation in the Software X paper)
The text was updated successfully, but these errors were encountered: