Mesh Oriented datABase  (version 5.5.0)
An array-based unstructured mesh library
moab::ReadHDF5Dataset Class Reference

Utility used for reading portions of an HDF5 dataset. More...

#include <ReadHDF5Dataset.hpp>

+ Collaboration diagram for moab::ReadHDF5Dataset:

Classes

class  Exception
 

Public Types

typedef int Comm
 

Public Member Functions

 ReadHDF5Dataset (const char *debug_desc, hid_t data_set_handle, bool parallel, const Comm *communicator=0, bool close_data_set_on_destruct=true)
 Setup to read entire table. More...
 
 ReadHDF5Dataset (const char *debug_desc, bool parallel, const Comm *communicator=0)
 
void init (hid_t data_set_handle, bool close_data_set_on_destruct=true)
 
bool will_close_data_set () const
 
void close_data_set_on_destruct (bool val)
 
 ~ReadHDF5Dataset ()
 
void set_file_ids (const Range &file_ids, EntityHandle start_id, hsize_t row_cout, hid_t data_type)
 Change file ids to read from. More...
 
void set_all_file_ids (hsize_t row_count, hid_t data_type)
 Read all values in dataset (undo set_file_ids) More...
 
bool done () const
 Return false if more data to read, true otherwise. More...
 
void read (void *buffer, size_t &rows_read)
 Read rows of table. More...
 
Range::const_iterator next_file_id () const
 Return position in Range of file IDs at which next read will start. More...
 
void null_read ()
 Do null read operation. More...
 
unsigned columns () const
 
void set_column (unsigned c)
 
unsigned long get_read_count () const
 
const char * get_debug_desc () const
 

Static Public Member Functions

static void set_hyperslab_selection_limit (size_t val)
 
static void default_hyperslab_selection_limit ()
 
static void append_hyperslabs ()
 
static void or_hyperslabs ()
 

Private Member Functions

Range::const_iterator next_end (Range::const_iterator iter)
 

Private Attributes

Range internalRange
 used when reading entire dataset More...
 
bool closeDataSet
 close dataset in destructor More...
 
hsize_t dataSetOffset [64]
 
hsize_t dataSetCount [64]
 
hid_t dataSet
 Handle for HDF5 data set. More...
 
hid_t dataSpace
 Data space for data set. More...
 
hid_t dataType
 Data type client code wants for data. More...
 
hid_t fileType
 Data type as stored in data set. More...
 
hid_t ioProp
 Used to specify collective IO. More...
 
int dataSpaceRank
 Rank of data set. More...
 
hsize_t rowsInTable
 Total number of rows in dataset. More...
 
bool doConversion
 True if dataType != fileType. More...
 
bool nativeParallel
 If true then reading different data on different procs. More...
 
hsize_t readCount
 Number of actual reads to do. More...
 
hsize_t bufferSize
 size of buffer passed to read, in number of rows More...
 
const CommmpiComm
 
Range::const_iterator currOffset
 
Range::const_iterator rangeEnd
 
EntityHandle startID
 
std::string mpeDesc
 

Static Private Attributes

static bool haveMPEEvents = false
 
static std::pair< int, int > mpeReadEvent
 
static std::pair< int, int > mpeReduceEvent
 
static size_t hyperslabSelectionLimit = DEFAULT_HYPERSLAB_SELECTION_LIMIT
 
static H5S_seloper_t hyperslabSelectOp = H5S_SELECT_OR
 

Detailed Description

Utility used for reading portions of an HDF5 dataset.

Implement iterative read of table where:

  • subset of rows to be read can be specified usign an Range of offsets
  • each read fills as much as possible of a passed buffer
  • each read call reads a subsequent set of rows of the data set in an iterator-like fashion.

NOTE: This class also implements an RAII pattern for the data set handle: It will close the data set in its destructor unless it is specified to the constructor that only a single column should be read.

NOTE: This class will always do collective IO for parallel reads.

Definition at line 38 of file ReadHDF5Dataset.hpp.

Member Typedef Documentation

◆ Comm

Definition at line 44 of file ReadHDF5Dataset.hpp.

Constructor & Destructor Documentation

◆ ReadHDF5Dataset() [1/2]

moab::ReadHDF5Dataset::ReadHDF5Dataset ( const char *  debug_desc,
hid_t  data_set_handle,
bool  parallel,
const Comm communicator = 0,
bool  close_data_set_on_destruct = true 
)

Setup to read entire table.

Parameters
data_set_handleThe HDF5 DataSet to read.
parallelDoing true partial-read parallel read (as opposed to read and delete where collective IO is done for everything because all procs read the same stuff.)
communictorIf parallel is true and io_prop is H5FD_MPIO_COLLECTIVE, then this must be a pointer to the MPI_Communicator value.
close_data_set_on_destructCall H5Dclose on passed data_set_handle in desturctor.

\NOTE If parallel is true and io_prop is H5FD_MPIO_COLLECTIVE, then not only must communicator be non-null, but this call must be made collectively!

\NOTE Class instance will not be usable until one of either set_file_ids or set_all_file_ids is called.

Definition at line 85 of file ReadHDF5Dataset.cpp.

90  : closeDataSet( close_data_set ), dataSet( data_set_handle ), dataSpace( -1 ), dataType( -1 ), fileType( -1 ),
91  ioProp( H5P_DEFAULT ), dataSpaceRank( 0 ), rowsInTable( 0 ), doConversion( false ), nativeParallel( parallel ),
92  readCount( 0 ), bufferSize( 0 ), mpiComm( communicator ), mpeDesc( debug_desc )
93 {
94  if( !haveMPEEvents )
95  {
96  haveMPEEvents = true;
97  mpeReadEvent = allocate_mpe_state( "ReadHDF5Dataset::read", "yellow" );
98  mpeReduceEvent = allocate_mpe_state( "ReadHDF5Dataset::all_reduce", "yellow" );
99  }
100 
101  init( data_set_handle, close_data_set );
102 
103 #ifndef MOAB_HAVE_HDF5_PARALLEL
104  if( nativeParallel ) throw Exception( __LINE__ );
105 #else
106  if( nativeParallel && !mpiComm ) throw Exception( __LINE__ );
107 
108  if( mpiComm )
109  {
110  ioProp = H5Pcreate( H5P_DATASET_XFER );
111  H5Pset_dxpl_mpio( ioProp, H5FD_MPIO_COLLECTIVE );
112  }
113 #endif
114 }

References moab::allocate_mpe_state(), haveMPEEvents, init(), ioProp, mpeReadEvent, mpeReduceEvent, mpiComm, and nativeParallel.

◆ ReadHDF5Dataset() [2/2]

moab::ReadHDF5Dataset::ReadHDF5Dataset ( const char *  debug_desc,
bool  parallel,
const Comm communicator = 0 
)

Definition at line 60 of file ReadHDF5Dataset.cpp.

61  : closeDataSet( false ), dataSet( -1 ), dataSpace( -1 ), dataType( -1 ), fileType( -1 ), ioProp( H5P_DEFAULT ),
62  dataSpaceRank( 0 ), rowsInTable( 0 ), doConversion( false ), nativeParallel( parallel ), readCount( 0 ),
63  bufferSize( 0 ), mpiComm( communicator ), mpeDesc( debug_desc )
64 {
65  if( !haveMPEEvents )
66  {
67  haveMPEEvents = true;
68  mpeReadEvent = allocate_mpe_state( "ReadHDF5Dataset::read", "yellow" );
69  mpeReduceEvent = allocate_mpe_state( "ReadHDF5Dataset::all_reduce", "yellow" );
70  }
71 
72 #ifndef MOAB_HAVE_HDF5_PARALLEL
73  if( nativeParallel ) throw Exception( __LINE__ );
74 #else
75  if( nativeParallel && !mpiComm ) throw Exception( __LINE__ );
76 
77  if( mpiComm )
78  {
79  ioProp = H5Pcreate( H5P_DATASET_XFER );
80  H5Pset_dxpl_mpio( ioProp, H5FD_MPIO_COLLECTIVE );
81  }
82 #endif
83 }

References moab::allocate_mpe_state(), haveMPEEvents, ioProp, mpeReadEvent, mpeReduceEvent, mpiComm, and nativeParallel.

◆ ~ReadHDF5Dataset()

moab::ReadHDF5Dataset::~ReadHDF5Dataset ( )

Definition at line 231 of file ReadHDF5Dataset.cpp.

232 {
233  if( fileType >= 0 ) H5Tclose( fileType );
234  if( dataSpace >= 0 ) H5Sclose( dataSpace );
235  if( closeDataSet && dataSet >= 0 ) H5Dclose( dataSet );
236  dataSpace = dataSet = -1;
237  if( ioProp != H5P_DEFAULT ) H5Pclose( ioProp );
238 }

References closeDataSet, dataSet, dataSpace, fileType, and ioProp.

Member Function Documentation

◆ append_hyperslabs()

static void moab::ReadHDF5Dataset::append_hyperslabs ( )
inlinestatic

Use non-standard 'APPEND' operation for hyperslab selection

Definition at line 166 of file ReadHDF5Dataset.hpp.

167  {
168  hyperslabSelectOp = H5S_SELECT_APPEND;
169  }

References hyperslabSelectOp.

Referenced by moab::ReadHDF5::set_up_read().

◆ close_data_set_on_destruct()

void moab::ReadHDF5Dataset::close_data_set_on_destruct ( bool  val)
inline

Definition at line 85 of file ReadHDF5Dataset.hpp.

86  {
87  closeDataSet = val;
88  }

References closeDataSet.

◆ columns()

unsigned moab::ReadHDF5Dataset::columns ( ) const

Definition at line 137 of file ReadHDF5Dataset.cpp.

138 {
139  if( dataSpaceRank == 1 )
140  return 1;
141  else if( dataSpaceRank == 2 )
142  return dataSetCount[1];
143 
144  throw Exception( __LINE__ );
145 }

References dataSetCount, and dataSpaceRank.

Referenced by read().

◆ default_hyperslab_selection_limit()

void moab::ReadHDF5Dataset::default_hyperslab_selection_limit ( )
static

◆ done()

bool moab::ReadHDF5Dataset::done ( ) const
inline

◆ get_debug_desc()

const char* moab::ReadHDF5Dataset::get_debug_desc ( ) const
inline

Definition at line 154 of file ReadHDF5Dataset.hpp.

155  {
156  return mpeDesc.c_str();
157  }

References mpeDesc.

Referenced by moab::ReadHDF5VarLen::read_data(), moab::ReadHDF5VarLen::read_offsets(), and moab::ReadHDF5::read_set_data().

◆ get_read_count()

◆ init()

void moab::ReadHDF5Dataset::init ( hid_t  data_set_handle,
bool  close_data_set_on_destruct = true 
)

Definition at line 116 of file ReadHDF5Dataset.cpp.

117 {
118  closeDataSet = close_data_set;
119  dataSet = data_set_handle;
120 
121  fileType = H5Dget_type( data_set_handle );
122  if( fileType < 0 ) throw Exception( __LINE__ );
123 
124  dataSpace = H5Dget_space( dataSet );
125  if( dataSpace < 0 ) throw Exception( __LINE__ );
126 
127  dataSpaceRank = H5Sget_simple_extent_dims( dataSpace, dataSetCount, dataSetOffset );
128  if( dataSpaceRank < 0 ) throw Exception( __LINE__ );
130 
131  for( int i = 0; i < dataSpaceRank; ++i )
132  dataSetOffset[i] = 0;
133 
135 }

References closeDataSet, currOffset, dataSet, dataSetCount, dataSetOffset, dataSpace, dataSpaceRank, moab::Range::end(), fileType, internalRange, rangeEnd, and rowsInTable.

Referenced by moab::ReadHDF5::read_set_ids_recursive(), and ReadHDF5Dataset().

◆ next_end()

Range::const_iterator moab::ReadHDF5Dataset::next_end ( Range::const_iterator  iter)
private

Definition at line 154 of file ReadHDF5Dataset.cpp.

155 {
156  size_t slabs_remaining = hyperslabSelectionLimit;
157  size_t avail = bufferSize;
158  while( iter != rangeEnd && slabs_remaining )
159  {
160  size_t count = *( iter.end_of_block() ) - *iter + 1;
161  if( count >= avail )
162  {
163  iter += avail;
164  break;
165  }
166 
167  avail -= count;
168  iter += count;
169  --slabs_remaining;
170  }
171  return iter;
172 }

References bufferSize, moab::Range::const_iterator::end_of_block(), hyperslabSelectionLimit, and rangeEnd.

Referenced by read(), and set_file_ids().

◆ next_file_id()

Range::const_iterator moab::ReadHDF5Dataset::next_file_id ( ) const
inline

Return position in Range of file IDs at which next read will start.

Definition at line 132 of file ReadHDF5Dataset.hpp.

133  {
134  return currOffset;
135  }

References currOffset.

◆ null_read()

void moab::ReadHDF5Dataset::null_read ( )

Do null read operation.

Do a read call requesting no data. This functionality is provided so as to allow collective IO when not all processes need to make the same number of read calls. To prevent deadlock in this case, processes that have finished their necessary read calls can call this function so that all processes are calling the read method collectively.

Definition at line 297 of file ReadHDF5Dataset.cpp.

298 {
299  herr_t err;
300  err = H5Sselect_none( dataSpace );
301  if( err < 0 ) throw Exception( __LINE__ );
302 
303  //#if HDF5_16API
304  hsize_t one = 1;
305  hid_t mem_id = H5Screate_simple( 1, &one, NULL );
306  if( mem_id < 0 ) throw Exception( __LINE__ );
307  err = H5Sselect_none( mem_id );
308  if( err < 0 )
309  {
310  H5Sclose( mem_id );
311  throw Exception( __LINE__ );
312  }
313  //#else
314  // hid_t mem_id = H5Screate(H5S_NULL);
315  // if (mem_id < 0)
316  // throw Exception(__LINE__);
317  //#endif
318 
319  err = H5Dread( dataSet, fileType, mem_id, dataSpace, ioProp, 0 );
320  H5Sclose( mem_id );
321  if( err < 0 ) throw Exception( __LINE__ );
322 }

References dataSet, dataSpace, fileType, and ioProp.

Referenced by read(), and moab::ReadHDF5::read_set_data().

◆ or_hyperslabs()

static void moab::ReadHDF5Dataset::or_hyperslabs ( )
inlinestatic

Revert to default select behavior for standard HDF5 library

Definition at line 171 of file ReadHDF5Dataset.hpp.

172  {
173  hyperslabSelectOp = H5S_SELECT_OR;
174  }

References hyperslabSelectOp.

◆ read()

void moab::ReadHDF5Dataset::read ( void *  buffer,
size_t &  rows_read 
)

Read rows of table.

Read up to max_num_rows from data set.

Parameters
bufferMemory in which to store values read from data set
rows_readThe actual number of rows read from the table. Will never exceed max_rows .

Definition at line 240 of file ReadHDF5Dataset.cpp.

241 {
242  herr_t err;
243  rows_read = 0;
244 
245  MPE_Log_event( mpeReadEvent.first, (int)readCount, mpeDesc.c_str() );
246  if( currOffset != rangeEnd )
247  {
248 
249  // Build H5S hyperslab selection describing the portions of the
250  // data set to read
251  H5S_seloper_t sop = H5S_SELECT_SET;
252  Range::iterator new_end = next_end( currOffset );
253  while( currOffset != new_end )
254  {
255  size_t count = *( currOffset.end_of_block() ) - *currOffset + 1;
256  if( new_end != rangeEnd && *currOffset + count > *new_end )
257  {
258  count = *new_end - *currOffset;
259  }
260  rows_read += count;
261 
263  dataSetCount[0] = count;
264  err = H5Sselect_hyperslab( dataSpace, sop, dataSetOffset, NULL, dataSetCount, 0 );
265  if( err < 0 ) throw Exception( __LINE__ );
266  sop = hyperslabSelectOp; // subsequent calls to select_hyperslab append
267 
268  currOffset += count;
269  }
270 
271  // Create a data space describing the memory in which to read the data
272  dataSetCount[0] = rows_read;
273  hid_t mem_id = H5Screate_simple( dataSpaceRank, dataSetCount, NULL );
274  if( mem_id < 0 ) throw Exception( __LINE__ );
275 
276  // Do the actual read
277  err = H5Dread( dataSet, fileType, mem_id, dataSpace, ioProp, buffer );
278  H5Sclose( mem_id );
279  if( err < 0 ) throw Exception( __LINE__ );
280 
281  if( readCount ) --readCount;
282 
283  if( doConversion )
284  {
285  err = H5Tconvert( fileType, dataType, rows_read * columns(), buffer, 0, H5P_DEFAULT );
286  if( err < 0 ) throw Exception( __LINE__ );
287  }
288  }
289  else if( readCount )
290  {
291  null_read();
292  --readCount;
293  }
294  MPE_Log_event( mpeReadEvent.second, (int)readCount, mpeDesc.c_str() );
295 }

References buffer, columns(), currOffset, dataSet, dataSetCount, dataSetOffset, dataSpace, dataSpaceRank, dataType, doConversion, moab::Range::const_iterator::end_of_block(), fileType, hyperslabSelectOp, ioProp, MPE_Log_event, mpeDesc, mpeReadEvent, next_end(), null_read(), rangeEnd, readCount, and startID.

Referenced by moab::ReadHDF5VarLen::read_data(), moab::ReadHDF5::read_dense_tag(), moab::ReadHDF5::read_elems(), moab::ReadHDF5::read_nodes(), moab::ReadHDF5VarLen::read_offsets(), moab::ReadHDF5::read_set_data(), moab::ReadHDF5::read_sparse_tag(), moab::ReadHDF5::read_sparse_tag_indices(), and moab::ReadHDF5::read_tag_values_partial().

◆ set_all_file_ids()

void moab::ReadHDF5Dataset::set_all_file_ids ( hsize_t  row_count,
hid_t  data_type 
)

Read all values in dataset (undo set_file_ids)

Parameters
row_countRead buffer size in number of table rows.
data_typeThe data type of the buffer into which table values are to be read.

Definition at line 224 of file ReadHDF5Dataset.cpp.

225 {
228  set_file_ids( internalRange, 1, row_count, data_type );
229 }

References moab::Range::clear(), moab::Range::insert(), internalRange, rowsInTable, and set_file_ids().

Referenced by moab::ReadHDF5::read_sparse_tag_indices(), and moab::ReadHDF5::read_tag_values_partial().

◆ set_column()

void moab::ReadHDF5Dataset::set_column ( unsigned  c)

Definition at line 147 of file ReadHDF5Dataset.cpp.

148 {
149  if( dataSpaceRank != 2 || column >= dataSetCount[1] ) throw Exception( __LINE__ );
150  dataSetCount[1] = 1;
151  dataSetOffset[1] = column;
152 }

References dataSetCount, dataSetOffset, and dataSpaceRank.

Referenced by moab::ReadHDF5::read_nodes().

◆ set_file_ids()

void moab::ReadHDF5Dataset::set_file_ids ( const Range file_ids,
EntityHandle  start_id,
hsize_t  row_cout,
hid_t  data_type 
)

Change file ids to read from.

Parameters
file_idsList of rows to read from dataset
start_idRows of dataset are enumerating beginning with this value. Thus the offset row to be read from dataset will be file_ids.begin() - start_id .
row_countRead buffer size in number of table rows.
data_typeThe data type of the buffer into which table values are to be read.

Definition at line 174 of file ReadHDF5Dataset.cpp.

175 {
176  startID = start_id;
177  currOffset = file_ids.begin();
178  rangeEnd = file_ids.end();
179  readCount = 0;
180  bufferSize = row_count;
181 
182  // if a) user specified buffer size and b) we're doing a true
183  // parallel partial read and c) we're doing collective I/O, then
184  // we need to know the maximum number of reads that will be done.
185 #ifdef MOAB_HAVE_HDF5_PARALLEL
186  if( nativeParallel )
187  {
188  Range::const_iterator iter = currOffset;
189  while( iter != rangeEnd )
190  {
191  ++readCount;
192  iter = next_end( iter );
193  }
194 
195  MPE_Log_event( mpeReduceEvent.first, (int)readCount, mpeDesc.c_str() );
196  unsigned long recv = readCount, send = readCount;
197  MPI_Allreduce( &send, &recv, 1, MPI_UNSIGNED_LONG, MPI_MAX, *mpiComm );
198  readCount = recv;
199  MPE_Log_event( mpeReduceEvent.second, (int)readCount, mpeDesc.c_str() );
200  }
201 #endif
202 
203  dataType = data_type;
204  htri_t equal = H5Tequal( fileType, dataType );
205  if( equal < 0 ) throw Exception( __LINE__ );
206  doConversion = !equal;
207 
208  // We always read in the format of the file to avoid stupind HDF5
209  // library behavior when reading in parallel. We call H5Tconvert
210  // ourselves to do the data conversion. If the type we're reading
211  // from the file is larger than the type we want in memory, then
212  // we need to reduce num_rows so that we can read the larger type
213  // from the file into the passed buffer mean to accomodate num_rows
214  // of values of the smaller in-memory type.
215  if( doConversion )
216  {
217  size_t mem_size, file_size;
218  mem_size = H5Tget_size( dataType );
219  file_size = H5Tget_size( fileType );
220  if( file_size > mem_size ) bufferSize = bufferSize * mem_size / file_size;
221  }
222 }

References moab::Range::begin(), bufferSize, currOffset, dataType, doConversion, moab::Range::end(), fileType, MPE_Log_event, mpeDesc, mpeReduceEvent, mpiComm, nativeParallel, next_end(), rangeEnd, readCount, and startID.

Referenced by moab::ReadHDF5VarLen::read_data(), moab::ReadHDF5::read_dense_tag(), moab::ReadHDF5::read_elems(), moab::ReadHDF5::read_nodes(), moab::ReadHDF5VarLen::read_offsets(), moab::ReadHDF5::read_set_data(), moab::ReadHDF5::read_sparse_tag(), moab::ReadHDF5::read_tag_values_partial(), and set_all_file_ids().

◆ set_hyperslab_selection_limit()

static void moab::ReadHDF5Dataset::set_hyperslab_selection_limit ( size_t  val)
inlinestatic

Definition at line 159 of file ReadHDF5Dataset.hpp.

160  {
162  }

References hyperslabSelectionLimit.

Referenced by moab::ReadHDF5::set_up_read().

◆ will_close_data_set()

bool moab::ReadHDF5Dataset::will_close_data_set ( ) const
inline

Definition at line 81 of file ReadHDF5Dataset.hpp.

82  {
83  return closeDataSet;
84  }

References closeDataSet.

Member Data Documentation

◆ bufferSize

hsize_t moab::ReadHDF5Dataset::bufferSize
private

size of buffer passed to read, in number of rows

Definition at line 194 of file ReadHDF5Dataset.hpp.

Referenced by next_end(), and set_file_ids().

◆ closeDataSet

bool moab::ReadHDF5Dataset::closeDataSet
private

close dataset in destructor

Definition at line 181 of file ReadHDF5Dataset.hpp.

Referenced by close_data_set_on_destruct(), init(), will_close_data_set(), and ~ReadHDF5Dataset().

◆ currOffset

Range::const_iterator moab::ReadHDF5Dataset::currOffset
private

Definition at line 197 of file ReadHDF5Dataset.hpp.

Referenced by done(), init(), next_file_id(), read(), and set_file_ids().

◆ dataSet

hid_t moab::ReadHDF5Dataset::dataSet
private

Handle for HDF5 data set.

Definition at line 183 of file ReadHDF5Dataset.hpp.

Referenced by init(), null_read(), read(), and ~ReadHDF5Dataset().

◆ dataSetCount

hsize_t moab::ReadHDF5Dataset::dataSetCount[64]
private

Definition at line 182 of file ReadHDF5Dataset.hpp.

Referenced by columns(), init(), read(), and set_column().

◆ dataSetOffset

hsize_t moab::ReadHDF5Dataset::dataSetOffset[64]
private

Definition at line 182 of file ReadHDF5Dataset.hpp.

Referenced by init(), read(), and set_column().

◆ dataSpace

hid_t moab::ReadHDF5Dataset::dataSpace
private

Data space for data set.

Definition at line 184 of file ReadHDF5Dataset.hpp.

Referenced by init(), null_read(), read(), and ~ReadHDF5Dataset().

◆ dataSpaceRank

int moab::ReadHDF5Dataset::dataSpaceRank
private

Rank of data set.

Definition at line 188 of file ReadHDF5Dataset.hpp.

Referenced by columns(), init(), read(), and set_column().

◆ dataType

hid_t moab::ReadHDF5Dataset::dataType
private

Data type client code wants for data.

Definition at line 185 of file ReadHDF5Dataset.hpp.

Referenced by read(), and set_file_ids().

◆ doConversion

bool moab::ReadHDF5Dataset::doConversion
private

True if dataType != fileType.

Definition at line 190 of file ReadHDF5Dataset.hpp.

Referenced by read(), and set_file_ids().

◆ fileType

hid_t moab::ReadHDF5Dataset::fileType
private

Data type as stored in data set.

Definition at line 186 of file ReadHDF5Dataset.hpp.

Referenced by init(), null_read(), read(), set_file_ids(), and ~ReadHDF5Dataset().

◆ haveMPEEvents

bool moab::ReadHDF5Dataset::haveMPEEvents = false
staticprivate

Definition at line 200 of file ReadHDF5Dataset.hpp.

Referenced by ReadHDF5Dataset().

◆ hyperslabSelectionLimit

size_t moab::ReadHDF5Dataset::hyperslabSelectionLimit = DEFAULT_HYPERSLAB_SELECTION_LIMIT
staticprivate

◆ hyperslabSelectOp

H5S_seloper_t moab::ReadHDF5Dataset::hyperslabSelectOp = H5S_SELECT_OR
staticprivate

Definition at line 206 of file ReadHDF5Dataset.hpp.

Referenced by append_hyperslabs(), or_hyperslabs(), and read().

◆ internalRange

Range moab::ReadHDF5Dataset::internalRange
private

used when reading entire dataset

Definition at line 179 of file ReadHDF5Dataset.hpp.

Referenced by init(), and set_all_file_ids().

◆ ioProp

hid_t moab::ReadHDF5Dataset::ioProp
private

Used to specify collective IO.

Definition at line 187 of file ReadHDF5Dataset.hpp.

Referenced by null_read(), read(), ReadHDF5Dataset(), and ~ReadHDF5Dataset().

◆ mpeDesc

std::string moab::ReadHDF5Dataset::mpeDesc
private

Definition at line 203 of file ReadHDF5Dataset.hpp.

Referenced by get_debug_desc(), read(), and set_file_ids().

◆ mpeReadEvent

std::pair< int, int > moab::ReadHDF5Dataset::mpeReadEvent
staticprivate

Definition at line 201 of file ReadHDF5Dataset.hpp.

Referenced by read(), and ReadHDF5Dataset().

◆ mpeReduceEvent

std::pair< int, int > moab::ReadHDF5Dataset::mpeReduceEvent
staticprivate

Definition at line 202 of file ReadHDF5Dataset.hpp.

Referenced by ReadHDF5Dataset(), and set_file_ids().

◆ mpiComm

const Comm* moab::ReadHDF5Dataset::mpiComm
private

Definition at line 195 of file ReadHDF5Dataset.hpp.

Referenced by ReadHDF5Dataset(), and set_file_ids().

◆ nativeParallel

bool moab::ReadHDF5Dataset::nativeParallel
private

If true then reading different data on different procs.

Definition at line 191 of file ReadHDF5Dataset.hpp.

Referenced by ReadHDF5Dataset(), and set_file_ids().

◆ rangeEnd

Range::const_iterator moab::ReadHDF5Dataset::rangeEnd
private

Definition at line 197 of file ReadHDF5Dataset.hpp.

Referenced by done(), init(), next_end(), read(), and set_file_ids().

◆ readCount

hsize_t moab::ReadHDF5Dataset::readCount
private

Number of actual reads to do.

Definition at line 193 of file ReadHDF5Dataset.hpp.

Referenced by done(), get_read_count(), read(), and set_file_ids().

◆ rowsInTable

hsize_t moab::ReadHDF5Dataset::rowsInTable
private

Total number of rows in dataset.

Definition at line 189 of file ReadHDF5Dataset.hpp.

Referenced by init(), and set_all_file_ids().

◆ startID

EntityHandle moab::ReadHDF5Dataset::startID
private

Definition at line 198 of file ReadHDF5Dataset.hpp.

Referenced by read(), and set_file_ids().


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