Utility used for reading portions of an HDF5 dataset. More...
#include <ReadHDF5Dataset.hpp>
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 Comm * | mpiComm |
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 |
Utility used for reading portions of an HDF5 dataset.
Implement iterative read of table where:
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.
typedef int moab::ReadHDF5Dataset::Comm |
Definition at line 44 of file ReadHDF5Dataset.hpp.
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.
data_set_handle | The HDF5 DataSet to read. |
parallel | Doing 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.) |
communictor | If 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_destruct | Call 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.
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.
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.
|
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().
|
inline |
Definition at line 85 of file ReadHDF5Dataset.hpp.
86 { 87 closeDataSet = val; 88 }
References closeDataSet.
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().
|
static |
Definition at line 33 of file ReadHDF5Dataset.cpp.
34 { 35 hyperslabSelectionLimit = DEFAULT_HYPERSLAB_SELECTION_LIMIT; 36 }
References moab::DEFAULT_HYPERSLAB_SELECTION_LIMIT, and hyperslabSelectionLimit.
Referenced by moab::ReadHDF5::set_up_read().
|
inline |
Return false if more data to read, true otherwise.
Test if the iterative read has reached the end.
Definition at line 116 of file ReadHDF5Dataset.hpp.
117 {
118 return ( currOffset == rangeEnd ) && ( readCount == 0 );
119 }
References currOffset, rangeEnd, and readCount.
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().
|
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().
|
inline |
Definition at line 150 of file ReadHDF5Dataset.hpp.
151 {
152 return readCount;
153 }
References readCount.
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_sparse_tag(), moab::ReadHDF5::read_sparse_tag_indices(), and moab::ReadHDF5::read_tag_values_partial().
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__ );
129 rowsInTable = dataSetCount[0];
130
131 for( int i = 0; i < dataSpaceRank; ++i )
132 dataSetOffset[i] = 0;
133
134 currOffset = rangeEnd = internalRange.end();
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().
|
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().
|
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.
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().
|
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.
void moab::ReadHDF5Dataset::read | ( | void * | buffer, |
size_t & | rows_read | ||
) |
Read rows of table.
Read up to max_num_rows from data set.
buffer | Memory in which to store values read from data set |
rows_read | The 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
262 dataSetOffset[0] = *currOffset - startID;
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().
void moab::ReadHDF5Dataset::set_all_file_ids | ( | hsize_t | row_count, |
hid_t | data_type | ||
) |
Read all values in dataset (undo set_file_ids)
row_count | Read buffer size in number of table rows. |
data_type | The data type of the buffer into which table values are to be read. |
Definition at line 224 of file ReadHDF5Dataset.cpp.
225 { 226 internalRange.clear(); 227 internalRange.insert( (EntityHandle)1, (EntityHandle)( rowsInTable ) ); 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().
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().
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.
file_ids | List of rows to read from dataset |
start_id | Rows 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_count | Read buffer size in number of table rows. |
data_type | The 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().
|
inlinestatic |
Definition at line 159 of file ReadHDF5Dataset.hpp.
160 { 161 hyperslabSelectionLimit = val; 162 }
References hyperslabSelectionLimit.
Referenced by moab::ReadHDF5::set_up_read().
|
inline |
Definition at line 81 of file ReadHDF5Dataset.hpp.
82 {
83 return closeDataSet;
84 }
References closeDataSet.
|
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().
|
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().
|
private |
Definition at line 197 of file ReadHDF5Dataset.hpp.
Referenced by done(), init(), next_file_id(), read(), and set_file_ids().
|
private |
Handle for HDF5 data set.
Definition at line 183 of file ReadHDF5Dataset.hpp.
Referenced by init(), null_read(), read(), and ~ReadHDF5Dataset().
|
private |
Definition at line 182 of file ReadHDF5Dataset.hpp.
Referenced by columns(), init(), read(), and set_column().
|
private |
Definition at line 182 of file ReadHDF5Dataset.hpp.
Referenced by init(), read(), and set_column().
|
private |
Data space for data set.
Definition at line 184 of file ReadHDF5Dataset.hpp.
Referenced by init(), null_read(), read(), and ~ReadHDF5Dataset().
|
private |
Rank of data set.
Definition at line 188 of file ReadHDF5Dataset.hpp.
Referenced by columns(), init(), read(), and set_column().
|
private |
Data type client code wants for data.
Definition at line 185 of file ReadHDF5Dataset.hpp.
Referenced by read(), and set_file_ids().
|
private |
True if dataType != fileType.
Definition at line 190 of file ReadHDF5Dataset.hpp.
Referenced by read(), and set_file_ids().
|
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().
|
staticprivate |
Definition at line 200 of file ReadHDF5Dataset.hpp.
Referenced by ReadHDF5Dataset().
|
staticprivate |
Definition at line 205 of file ReadHDF5Dataset.hpp.
Referenced by default_hyperslab_selection_limit(), next_end(), and set_hyperslab_selection_limit().
|
staticprivate |
Definition at line 206 of file ReadHDF5Dataset.hpp.
Referenced by append_hyperslabs(), or_hyperslabs(), and read().
|
private |
used when reading entire dataset
Definition at line 179 of file ReadHDF5Dataset.hpp.
Referenced by init(), and set_all_file_ids().
|
private |
Used to specify collective IO.
Definition at line 187 of file ReadHDF5Dataset.hpp.
Referenced by null_read(), read(), ReadHDF5Dataset(), and ~ReadHDF5Dataset().
|
private |
Definition at line 203 of file ReadHDF5Dataset.hpp.
Referenced by get_debug_desc(), read(), and set_file_ids().
|
staticprivate |
Definition at line 201 of file ReadHDF5Dataset.hpp.
Referenced by read(), and ReadHDF5Dataset().
|
staticprivate |
Definition at line 202 of file ReadHDF5Dataset.hpp.
Referenced by ReadHDF5Dataset(), and set_file_ids().
|
private |
Definition at line 195 of file ReadHDF5Dataset.hpp.
Referenced by ReadHDF5Dataset(), and set_file_ids().
|
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().
|
private |
Definition at line 197 of file ReadHDF5Dataset.hpp.
Referenced by done(), init(), next_end(), read(), and set_file_ids().
|
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().
|
private |
Total number of rows in dataset.
Definition at line 189 of file ReadHDF5Dataset.hpp.
Referenced by init(), and set_all_file_ids().
|
private |
Definition at line 198 of file ReadHDF5Dataset.hpp.
Referenced by read(), and set_file_ids().