Conversation
ceefa82 to
76d4e2d
Compare
docs/source/backends/adios2.rst
Outdated
|
|
||
| ADIOS2 is optimized towards organizing the process of reading/writing data into IO steps. | ||
| In order to activate steps, it is imperative to use the :ref:`Streaming API <usage-streaming>` (which can be used for either file-based or streaming-based workflows). | ||
| @franzpoeschel: let's remove these work-arounds :-) |
There was a problem hiding this comment.
Removing this workaround would be a breaking change to our written datasets, making them unreadable with old versions of the openPMD API. I'd postpone the removal of this workaround until switching to the new schema (I've re-set the defaults accordingly for the new schema in #855).
There was a problem hiding this comment.
Sounds great!
Do you like to rephrase the section here then? It might be confusing for us and users to talk about 2.6.0 if we mean the openPMD 1 layout after this PR (because this PR drops ADIOS 2.6.0). Maybe you can use the same phrasing as in the doxygen comment (backwards compatible with 2.6.0 output that needed to work around a bug...)
There was a problem hiding this comment.
Ah, I somehow missed this one. Updated it.
| * 2) Reading with the Streaming API any file that has been written | ||
| * without steps. | ||
| * | ||
| * @todo [franzpoeschel] let's remove these work-arounds :-) |
There was a problem hiding this comment.
The description in this one is a bit incomplete. As of ADIOS 2.7.0, it is still necessary to delay opening the first step in case a reader does not use steps at all.
But in any case, I'll need to update the description of this (and also mention somewhere that its difference to the state OutsideOfStep lies in the fact that requireActiveStep() will not open a step).
|
Hmm, I tried to activate the tests under Windows that I thought were failing because of ADIOS 2.6.0. Apparently, they're still failing.. |
d5de68a to
76d4e2d
Compare
|
I threw out the failing commit, but something else went wrong again |
befbd74 to
b7009eb
Compare
|
I've fixed the SSC issues. Also, rebased since there was a conflict. |
b7009eb to
80786d8
Compare
| numItems *= extent; | ||
| } | ||
| new( dest ) T[ numItems ]{}; | ||
| for( size_t i = 0; i < numItems; ++i ) |
There was a problem hiding this comment.
That construct looks expensive, why do we need to loop this now?
Update: just saw #926 (comment)
Just to get a feeling, how large is numItems usually?
Update: I just learned what a placement new is, so it's probably not more expensive to loop here? :D
I trust that you know what you are doing: https://stackoverflow.com/a/36854950/2719194 :)
There was a problem hiding this comment.
Ah yes, should have written something on that one here too.
In most cases, numItems is 1, for our unit dimension things it is 7. I think, the largest instances are for the VEC_STRING datatype since those are represented as 2D char vectors, so you'll get some 2-digit number there.
so it's probably not more expensive to loop here
I think it shouldn't be since this doesn't allocate anything.
Theoretically, we could also memset the whole thing to zero and use placement new only for non-basic datatypes, but that makes things very finicky to deal with and I don't think it's worth.
Also, I don't use delete[], see struct AttributeLocationDestroy in the same file for the destructors.
But yeah, this file was tricky to get right
37de671 to
32916ae
Compare
Increase ADIOS2 dependency to v2.7.0+
This one does not yet have E4S caches, so build times might go up a bit.
To do this, add .ssc as a possible file ending and enlist it under the file endings.
This also fixes broken array placement new in MSVC
|
Rebased this again to get the frontend redesign (I use this as base for some other PRs). |
32916ae to
3b0f40b
Compare
Increase ADIOS2 dependency to v2.7.0+