libSplash
Public Member Functions | List of all members
splash::IParallelDataCollector Class Referenceabstract

#include <IParallelDataCollector.hpp>

Inheritance diagram for splash::IParallelDataCollector:
Inheritance graph
[legend]
Collaboration diagram for splash::IParallelDataCollector:
Collaboration graph
[legend]

Public Member Functions

virtual void write (int32_t id, const CollectionType &type, uint32_t rank, const Selection select, const char *name, const void *buf)=0
 
virtual void write (int32_t id, const Dimensions globalSize, const Dimensions globalOffset, const CollectionType &type, uint32_t rank, const Selection select, const char *name, const void *buf)=0
 
virtual void reserve (int32_t id, const Dimensions globalSize, uint32_t rank, const CollectionType &type, const char *name)=0
 
virtual void reserve (int32_t id, const Dimensions size, Dimensions *globalSize, Dimensions *globalOffset, uint32_t rank, const CollectionType &type, const char *name)=0
 
virtual void readGlobalAttribute (int32_t id, const char *name, void *buf)=0
 
virtual void writeGlobalAttribute (int32_t id, const CollectionType &type, const char *name, const void *buf)=0
 
virtual void writeGlobalAttribute (int32_t id, const CollectionType &type, const char *name, uint32_t ndims, const Dimensions dims, const void *buf)=0
 
virtual void readGlobalAttribute (const char *name, void *buf, Dimensions *mpiPosition=NULL)=0
 
virtual void writeGlobalAttribute (const CollectionType &type, const char *name, const void *buf)=0
 
virtual void writeGlobalAttribute (const CollectionType &type, const char *name, uint32_t ndims, const Dimensions dims, const void *buf)=0
 
virtual void append (int32_t id, const Dimensions size, uint32_t rank, const Dimensions globalOffset, const char *name, const void *buf)=0
 
virtual void append (int32_t id, const CollectionType &type, size_t count, const char *name, const void *buf)=0
 
virtual void append (int32_t id, const CollectionType &type, size_t count, size_t offset, size_t stride, const char *name, const void *buf)=0
 
virtual void finalize (void)=0
 
- Public Member Functions inherited from splash::DataCollector
virtual ~DataCollector ()
 
virtual void open (const char *filename, FileCreationAttr &attr)=0
 
virtual void close ()=0
 
virtual int32_t getMaxID ()=0
 
virtual void getMPISize (Dimensions &mpiSize)=0
 
virtual void getEntryIDs (int32_t *ids, size_t *count)=0
 
virtual void getEntriesForID (int32_t id, DCEntry *entries, size_t *count)=0
 
virtual void remove (int32_t id)=0
 
virtual void remove (int32_t id, const char *name)=0
 
virtual void createReference (int32_t srcID, const char *srcName, int32_t dstID, const char *dstName)=0
 
virtual void createReference (int32_t srcID, const char *srcName, int32_t dstID, const char *dstName, Dimensions count, Dimensions offset, Dimensions stride)=0
 
virtual AttributeInfo readGlobalAttributeInfo (int32_t id, const char *name, Dimensions *mpiPosition=NULL)=0
 
virtual AttributeInfo readAttributeInfo (int32_t id, const char *dataName, const char *attrName, Dimensions *mpiPosition=NULL)=0
 
virtual void readAttribute (int32_t id, const char *dataName, const char *attrName, void *buf, Dimensions *mpiPosition=NULL)=0
 
virtual void writeAttribute (int32_t id, const CollectionType &type, const char *dataName, const char *attrName, const void *buf)=0
 
virtual void writeAttribute (int32_t id, const CollectionType &type, const char *dataName, const char *attrName, uint32_t ndims, const Dimensions dims, const void *buf)=0
 
virtual void read (int32_t id, const char *name, Dimensions &sizeRead, void *buf)=0
 
virtual void read (int32_t id, const char *name, const Dimensions dstBuffer, const Dimensions dstOffset, Dimensions &sizeRead, void *buf)=0
 
virtual CollectionTypereadMeta (int32_t id, const char *name, const Dimensions dstBuffer, const Dimensions dstOffset, Dimensions &sizeRead)=0
 

Additional Inherited Members

- Public Types inherited from splash::DataCollector
enum  FileAccType { FAT_CREATE, FAT_READ, FAT_READ_MERGED, FAT_WRITE }
 
typedef struct splash::DataCollector::_FileCreationAttr FileCreationAttr
 
typedef struct splash::DataCollector::_DCEntry DCEntry
 
- Static Public Member Functions inherited from splash::DataCollector
static void initFileCreationAttr (FileCreationAttr &attr)
 

Detailed Description

Interface for a parallel DataCollector.

Definition at line 34 of file IParallelDataCollector.hpp.

Member Function Documentation

◆ append() [1/3]

virtual void splash::IParallelDataCollector::append ( int32_t  id,
const Dimensions  size,
uint32_t  rank,
const Dimensions  globalOffset,
const char *  name,
const void *  buf 
)
pure virtual

Appends (1-3) dimensional data to a dataset created with IParallelDataCollector::reserve.

Parameters
idID for iteration.
sizeSize of the data to be appended.
rankNumber of dimensions (1-3),
globalOffsetOffset in destination dataset to append at.
nameName for the dataset to append to.
bufBuffer to append.

Implemented in splash::ParallelDataCollector.

◆ append() [2/3]

virtual void splash::IParallelDataCollector::append ( int32_t  id,
const CollectionType type,
size_t  count,
const char *  name,
const void *  buf 
)
pure virtual

Appends 1-dimensional data in a HDF5 file.

The target dataset is created if necessary. If it already exists, data is appended to the end.

Parameters
idID for iteration.
typeType information for data.
countNumber of elements to append.
nameName for the dataset to create/append.
bufBuffer to append.

Implements splash::DataCollector.

◆ append() [3/3]

virtual void splash::IParallelDataCollector::append ( int32_t  id,
const CollectionType type,
size_t  count,
size_t  offset,
size_t  stride,
const char *  name,
const void *  buf 
)
pure virtual

Appends 1-dimensional data in a HDF5 file using striding.

The target dataset is created if necessary. If it already exists, data is appended to the end. The data is read using striding from source buffer buf.

Parameters
idid for fileentry. e.g. iteration
typeType information for data.
countNumber of elements to append.
offsetOffset in elements to start reading from in buf.
strideStriding to be used for reading from buf, 1 means 'no striding'. buf must contain at least (striding * count) elements.
nameName for the dataset to create/append.
bufBuffer to append.

Implements splash::DataCollector.

◆ finalize()

virtual void splash::IParallelDataCollector::finalize ( void  )
pure virtual

Finalizes by freeing all MPI resources. Must be called before MPI_Finalize.

Implemented in splash::ParallelDataCollector.

◆ readGlobalAttribute() [1/2]

virtual void splash::IParallelDataCollector::readGlobalAttribute ( int32_t  id,
const char *  name,
void *  buf 
)
pure virtual

Reads global attribute from HDF5 file.

Parameters
idID for iteration.
nameName of the attribute.
bufDestination buffer for attribute.

Implemented in splash::ParallelDataCollector.

◆ readGlobalAttribute() [2/2]

virtual void splash::IParallelDataCollector::readGlobalAttribute ( const char *  name,
void *  buf,
Dimensions mpiPosition = NULL 
)
pure virtual

Reads global attribute from HDF5 file.

Parameters
nameName for the attribute.
bufBuffer to read attribute to.
mpiPositionPointer to Dimensions class. Identifies MPI-position-specific custom group. Use NULL to read from default group.

Implements splash::DataCollector.

◆ reserve() [1/2]

virtual void splash::IParallelDataCollector::reserve ( int32_t  id,
const Dimensions  globalSize,
uint32_t  rank,
const CollectionType type,
const char *  name 
)
pure virtual

Reserves a dataset for parallel access.

Parameters
idID for iteration.
globalSizeSize to reserve for global data.
rankNumber of dimensions (1-3).
typeType information for data.
nameName for the dataset.

Implemented in splash::ParallelDataCollector.

◆ reserve() [2/2]

virtual void splash::IParallelDataCollector::reserve ( int32_t  id,
const Dimensions  size,
Dimensions globalSize,
Dimensions globalOffset,
uint32_t  rank,
const CollectionType type,
const char *  name 
)
pure virtual

Reserves a dataset for parallel access.

Parameters
idID for iteration.
sizeSize to reserve for local data.
globalSizeReturns the global size of the dataset, can be NULL.
globalOffsetReturns the global offset for the calling process, can be NULL.
rankNumber of dimensions (1-3).
typeType information for data.
nameName for the dataset.

Implemented in splash::ParallelDataCollector.

◆ write() [1/2]

virtual void splash::IParallelDataCollector::write ( int32_t  id,
const CollectionType type,
uint32_t  rank,
const Selection  select,
const char *  name,
const void *  buf 
)
pure virtual

Implements DataCollector::write The global size and the write offset for the calling process are determined automatically via MPI among all participating processes. Note: This is not possible when writing 2D data with a 3D MPI topology.

Implements splash::DataCollector.

Implemented in splash::ParallelDataCollector.

◆ write() [2/2]

virtual void splash::IParallelDataCollector::write ( int32_t  id,
const Dimensions  globalSize,
const Dimensions  globalOffset,
const CollectionType type,
uint32_t  rank,
const Selection  select,
const char *  name,
const void *  buf 
)
pure virtual

Writes data to HDF5 file.

Parameters
idID for iteration
globalSizeSize of global collective write buffer.
globalOffsetOffset in globalSize buffer where this process writes to.
typeType information for data.
rankNumber of dimensions (1-3).
selectSelection in src buffer.
nameName for the dataset.
bufLocal buffer for writing.

Implemented in splash::ParallelDataCollector.

◆ writeGlobalAttribute() [1/3]

virtual void splash::IParallelDataCollector::writeGlobalAttribute ( int32_t  id,
const CollectionType type,
const char *  name,
const void *  buf 
)
pure virtual

Writes global attribute to HDF5 file (default group).

Parameters
idID for iteration.
typeType information for data.
nameName of the attribute.
bufSource buffer for attribute.

Implemented in splash::ParallelDataCollector.

◆ writeGlobalAttribute() [2/3]

virtual void splash::IParallelDataCollector::writeGlobalAttribute ( const CollectionType type,
const char *  name,
const void *  buf 
)
pure virtual

Writes global attribute to HDF5 file (default group).

Parameters
typeType information for data.
nameName of the attribute.
bufBuffer to be written as attribute.

Implements splash::DataCollector.

◆ writeGlobalAttribute() [3/3]

virtual void splash::IParallelDataCollector::writeGlobalAttribute ( const CollectionType type,
const char *  name,
uint32_t  ndims,
const Dimensions  dims,
const void *  buf 
)
pure virtual

Writes global attribute to HDF5 file (default group).

Parameters
typeType information for data.
nameName of the attribute.
ndimsNumber of dimensions (1-3)
dimsNumber of elements
bufBuffer to be written as attribute.

Implements splash::DataCollector.


The documentation for this class was generated from the following file: