diff options
author | 2021-08-04 00:52:16 -0700 | |
---|---|---|
committer | 2021-08-04 00:52:16 -0700 | |
commit | 87f089fc1a72b2b161dccc43d271642eb4decde7 (patch) | |
tree | cc9c810898b84cb13c6d2c8347aa7d357e055a30 /Source/Particles/MultiParticleContainer.cpp | |
parent | 03a5e86d7ad13949863357ca8b3bc40ab8f53f8e (diff) | |
download | WarpX-87f089fc1a72b2b161dccc43d271642eb4decde7.tar.gz WarpX-87f089fc1a72b2b161dccc43d271642eb4decde7.tar.zst WarpX-87f089fc1a72b2b161dccc43d271642eb4decde7.zip |
openPMD: Use Steps if != BTD (#2157)
* openPMD: Use Steps if != BTD
For all but back-transformed diagnostics, we can use efficient,
temporally sequentially increasing writes to iteration numbers
for iterations.
This allows us to give a guarantee to HPC I/O libraries on how
to arrange data, e.g., we can use ADIOS2 BeginStep() and
EndStep().
This enables paths to:
- streaming workflows, such as ADIOS2 SST or SSC, where we stage data
over the network instead of using files
https://openpmd-api.readthedocs.io/en/0.14.0/usage/streaming.html
This mitigates:
- host-side memory aggregation for ADIOS2 with openPMD `groupBased`
iteration encoding
https://openpmd-api.readthedocs.io/en/0.14.0/backends/adios2.html#memory-usage
* openPMD: Open Iterations Explicitly
Explicitly open iterations. Usually, file-open operations are delayed
until the first load/storeChunk operation is flush-ed. In parallel
contexts where we might want to do only particle writes from a few
ranks but no field wries in the future, this will avoid that we run
into hangs from the non-collective nature of the first flush.
The Streaming API (i.e., Series::writeIterations()) will call this
method implicitly as well, but back-transformed diags (particles)
might still need this.
* openPMD: 0.13.0+
Needed for streaming API and collective open.
Diffstat (limited to 'Source/Particles/MultiParticleContainer.cpp')
0 files changed, 0 insertions, 0 deletions