-
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
Streaming Support #570
Streaming Support #570
Conversation
I updated the CI with further ADIOS2 tests in #568. |
b4899a6
to
0024dc9
Compare
2801b99
to
3b0bd23
Compare
Hi @franzpoeschel, happy new year! 🌟 |
Hi, @ax3l, I will continue on thursday/friday, yes. |
3b0bd23
to
0d6cb5a
Compare
I have temporarily moved this to topic-streaming-bak to perform cleanup work on this branch. |
Can we implement that a |
I am currently planning to move |
|
45c51db
to
147680b
Compare
ce8b73f
to
f18fa5f
Compare
f18fa5f
to
6e9ed26
Compare
cfe35c3
to
2081dd2
Compare
I've implemented the streaming API in |
Todo: Documentation
81687be
to
299a9e4
Compare
6e13992
to
ef124f7
Compare
2d6c0f9
to
47d504d
Compare
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.
This is fantastic work, thank you for your dedication and the high quality. Congratulations and happy holidays! 🎄
{ | ||
adios2_streaming(); | ||
} | ||
#endif |
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.
#endif | |
#endif | |
Add support for streaming IO to the openPMD API, including frontend semantics and a backend implementation for the ADIOS2 IO backend.
This concept is now purely internal, with a much simpler API exposed to users. The API is documented in streaming.rst. It is more restrictive than the traditional random-access based API and hence more generic, being usable for file-based as well as for streaming-based workflows.
Review entry points:
Series.hpp
classesReadIterations
andWriteIterations
Iteration::beginStep()/endStep()/close()
Major additions include:
Additional functionality to deal with partial datasets in Dataset.hpp and RecordComponent.hppSince the high-level API now correlates streaming steps with iterations, single datasets are expected to be fully available or not available at all. Finer-grained accessing methods have hence been removed again.inquiring available chunks, closing files (see below for a reason why this is not a separate PR)and closing paths. The latter command indicates that this group will not be written to any longer, allowing for optimizations in the backend.Update: Closing files is already merged separately, inquiring available chunks extracted to PR Add ::availableChunks call to Record Component types #802.~~
Update: Now internal, not part of the public API.
Update: Not part of this PR, will either come as a later PR or as part of external tooling.
Update: Removed.
ReadIterations
class) and a high-level container-based Streaming-API for writing (WriteIterations
class)TODO:
(I will be on holidays in the second half of october and likely without Internet during that time, just leave comments, but I might take a while to react :) )