|
DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
|
MPI-parallel HDF5 serializer implementing the SerializerBase interface. More...
Go to the source code of this file.
Classes | |
| class | DNDS::Serializer::SerializerH5 |
| MPI-parallel HDF5 serializer; all ranks collectively read/write a single .h5 file. More... | |
Namespaces | |
| namespace | DNDS |
| the host side operators are provided as implemented | |
| namespace | DNDS::Serializer |
MPI-parallel HDF5 serializer implementing the SerializerBase interface.
Internally, ReadDataVector uses a two-pass pattern:
When local size is 0, std::vector<>::data() / host_device_vector<>::data() may return nullptr, which would skip the H5Dread block (guarded by if (buf != nullptr)) and hang the other ranks. To prevent this, each Read*Vector / ReadShared*Vector caller passes a dummy stack pointer when size == 0. Callers of ReadUint8Array must do the same (see SerializerBase).
H5_ReadDataset and H5_WriteDataset accept nLocal == 0: the hyperslab selection with count == 0 selects nothing, so no data is transferred, but the rank still participates in the collective call.
Definition in file SerializerH5.hpp.