[MOAB-dev] r3946 - in MOAB/trunk: src/io src/io/mhdf/include src/io/mhdf/src src/parallel test/parallel
kraftche at cae.wisc.edu
kraftche at cae.wisc.edu
Mon May 24 16:40:26 CDT 2010
Author: kraftche
Date: 2010-05-24 16:40:26 -0500 (Mon, 24 May 2010)
New Revision: 3946
Modified:
MOAB/trunk/src/io/ReadHDF5.cpp
MOAB/trunk/src/io/WriteHDF5.cpp
MOAB/trunk/src/io/mhdf/include/mhdf.h
MOAB/trunk/src/io/mhdf/src/nodes.c
MOAB/trunk/src/io/mhdf/src/util.c
MOAB/trunk/src/io/mhdf/src/util.h
MOAB/trunk/src/parallel/WriteHDF5Parallel.cpp
MOAB/trunk/test/parallel/mhdf_parallel.c
Log:
Some changes to help diagnose time spent writing node coordinates on cosmea:
o Ask HDF5 library to arrange node coordinates on disk closer to how
we intend to read/write them (e.g. group all X-coordinates together, etc.)
o More fine-grainded debug output in node-writing code.
Modified: MOAB/trunk/src/io/ReadHDF5.cpp
===================================================================
--- MOAB/trunk/src/io/ReadHDF5.cpp 2010-05-24 17:46:09 UTC (rev 3945)
+++ MOAB/trunk/src/io/ReadHDF5.cpp 2010-05-24 21:40:26 UTC (rev 3946)
@@ -1017,9 +1017,6 @@
ErrorCode ReadHDF5::read_nodes( const Range& node_file_ids )
{
-
- debug_barrier();
-
ErrorCode rval;
mhdf_Status status;
const int dim = fileInfo->nodes.vals_per_ent;
@@ -1063,6 +1060,7 @@
long offset = p->first - fileInfo->nodes.start_id;
debug_track.record_io( offset, count );
+ dbgOut.tprintf(4,"Reading nodes [%ld,%ld]\n", offset, offset+count-1);
for (int i = 0; i < dim; ++i) {
mhdf_readNodeCoordWithOpt( data_id, offset, count, i, arrays[i], indepIO, &status );
if (is_error(status)) {
Modified: MOAB/trunk/src/io/WriteHDF5.cpp
===================================================================
--- MOAB/trunk/src/io/WriteHDF5.cpp 2010-05-24 17:46:09 UTC (rev 3945)
+++ MOAB/trunk/src/io/WriteHDF5.cpp 2010-05-24 21:40:26 UTC (rev 3946)
@@ -2177,7 +2177,7 @@
if (nodeSet.range.size()) {
nodeSet.total_num_ents = nodeSet.range.size();
handle = mhdf_createNodeCoords( filePtr, dimension, nodeSet.total_num_ents,
- &first_id, &status );
+ &first_id, true, &status );
CHK_MHDF_ERR_0(status);
mhdf_closeData( filePtr, handle, &status );
CHK_MHDF_ERR_0(status);
Modified: MOAB/trunk/src/io/mhdf/include/mhdf.h
===================================================================
--- MOAB/trunk/src/io/mhdf/include/mhdf.h 2010-05-24 17:46:09 UTC (rev 3945)
+++ MOAB/trunk/src/io/mhdf/include/mhdf.h 2010-05-24 21:40:26 UTC (rev 3946)
@@ -476,6 +476,11 @@
* \param first_node_id_out Nodes are assigned IDs sequentially in the
* order they occur in the table, where the ID of the first
* node in the table is this passed-back value.
+ * \param column_major_chunking If non-zero, select file layout optimized
+ * for reading/writing a single column at a time (e.g. writing
+ * all the X-coordinates before writing any Y-coordinates.)
+ * If zero, optimize layout for reading all coordinates together,
+ * in an interleaved format.
* \param status Passed back status of API call.
More information about the moab-dev
mailing list