32 #ifndef BASE_OUTPUT_HDF5_STREAM_H
33 #define BASE_OUTPUT_HDF5_STREAM_H
94 virtual void Close() = 0;
THDF5_File & file
HDF5 file handle.
TBaseOutputHDF5Stream()
Default constructor not allowed.
TBaseOutputHDF5Stream & operator=(const TBaseOutputHDF5Stream &src)
Operator = not allowed (we don't want any data movements).
virtual void CopyDataFromDevice()
Copy data deviceBuffer -> hostBuffer.
The header file containing the class for real matrices.
calculate root mean square
std::string rootObjectName
Dataset name.
virtual void Close()=0
Close stream (apply post-processing if necessary, flush data and close).
const TReduceOperator reduceOp
Reduce operator.
The header file containing the HDF5 related classes.
virtual void Sample()=0
Sample data into buffer, apply reduction - based on a sensor mask (no data flushed to disk)...
static const size_t CHUNK_SIZE_4MB
chunk size of 4MB in number of float elements
const std::string TMatrixName
Datatype for matrix names.
virtual void Reopen()=0
Reopen the output stream after restart.
virtual void PostProcess()
Apply post-processing on the buffer and flush it to the file.
hid_t dataset
HDF5 dataset handle.
virtual void AllocateMemory()
A generic function to allocate memory - not used in the base class.
const TRealMatrix & sourceMatrix
Source matrix to be sampled.
The header file containing the class for 64b integer matrices.
virtual void Create()=0
Create a HDF5 stream and allocate data for it.
TReduceOperator
How to aggregate data.
float * deviceBuffer
Temporary buffer on the GPU side - only for aggregated quantities.
store actual data (time series)
Abstract base class for output data streams (sampled data).
virtual void FreeMemory()
A generic function to free memory - not used in the base class.
The class for real matrices.
float * hostBuffer
Temporary buffer for store on the GPU side.
virtual void CopyDataToDevice()
Copy data hostBuffer-> deviceBuffer.
TDimensionSizes position
Position in the dataset.
virtual void FlushRaw()=0
Flush raw data to disk.
size_t bufferSize
Buffer size.
virtual ~TBaseOutputHDF5Stream()
Destructor.
virtual void Checkpoint()=0
Checkpoint the stream.
static const size_t MIN_GRIDPOINTS_TO_SAMPLE_IN_PARALLEL
The minimum number of elements to start sampling in parallel (4MB)
Class wrapping the HDF5 routines.
Structure with 4D dimension sizes (3 in space and 1 in time).