You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Performance optimization: Long-running simulations (many iterations, reading and writing)
Specify default attributes not upon construction, but upon closing, clean up the logic for specifying defaults, constructors and destructors of our object model
Context: crashing simulations
If in read, a standard attribute is missing, then warn and add a reasonable default (e.g., a 3-value axisLabel for a 3D-mesh)
Synchronous mode: Avoid UB for store and load chunks
In both C++ and Python, we would like to avoid that the user can interact with allocated but non-flushed (UB) data.
For this, we could rename storeChunk / loadChunk to ...Async(), which returns a std::future (C++) or asyncio.Future (Python).
We need to keep track which of these in-flight objects we created and will set them to valid on series.flush().
If a future is awaited before flush was called, we throw a runtime exception, which allows to recover in interactive use. Futures also allow us to check if the futures are valid w/o having to catch exceptions.
The existing APIs would be sync.
Maybe Use ADIOS2 group feature in reading (-> faster parsing)
Maybe Chunk distribution algorithms
Maybe Async I/O (especially Python)
The text was updated successfully, but these errors were encountered:
A wishlist of features after the upcoming releases:
Near-Term
see description Allow user to store non-openPMD information openPMD-standard#115
ADIOS2 schema 2022_07_26, based on ADIOS2 modifiable attributes #1310
Added support for Joined Arrays in the BP4 format and engine. ornladios/ADIOS2#3466
RecordComponent::SCALAR
Remove necessity for RecordComponent::SCALAR #1154
openpmd-pipe
: modularize into visitor patternopenpmd-pipe
: reuse in new CLI tools such asopenpmd-coarsen
(fields, particles [WIP] Script: Filter & Copy Particles #1390)Mid-Term
async for iteration in s.read_iterations()
for Pythonhttps://picongpu.readthedocs.io/en/0.6.0/usage/plugins/openPMD.html#cfg-file, also for iteration-specific configuration, e.g. for InitialBufferSize per file
With this change: Provide openPMD-api via Linux package managers
Long-Term / Ideas
Synchronous mode: Avoid UB for store and load chunks
storeChunk
/loadChunk
to...Async()
, which returns astd::future
(C++) orasyncio.Future
(Python).series.flush()
.Maybe Use ADIOS2 group feature in reading (-> faster parsing)
Maybe Chunk distribution algorithms
Maybe Async I/O (especially Python)
The text was updated successfully, but these errors were encountered: