This somewhat fixes #1616 until we add a better solution. With this PR: seriesFlush() will always flush the containing Iteration if called from within an Iteration (and will ignore missing dirty annotations).
At the same time, I added a better detection for BP5-specific features. Since this means that adios2::Engine::PerformDataWrite() is used automatically more often, this uncovers further parallel flushing bugs. So, these two items are treated together in this PR.
In a follow-up PR later on, as a more breaking change, we would also flush all open iterations in MPI-parallel contexts on series.flush(), but for this we will first need functionality to reopen iterations after close #1592.
This somewhat fixes #1616 until we add a better solution. With this PR:
seriesFlush()
will always flush the containing Iteration if called from within an Iteration (and will ignore missingdirty
annotations).At the same time, I added a better detection for BP5-specific features. Since this means that
adios2::Engine::PerformDataWrite()
is used automatically more often, this uncovers further parallel flushing bugs. So, these two items are treated together in this PR.In a follow-up PR later on, as a more breaking change, we would also flush all open iterations in MPI-parallel contexts on
series.flush()
, but for this we will first need functionality to reopen iterations after close #1592.TODO: