summaryrefslogtreecommitdiffstats
path: root/pablo/HDFrecord_RT.h
diff options
context:
space:
mode:
authorDan Wells <dwells@cs.uiuc.edu>2001-04-24 21:20:05 (GMT)
committerDan Wells <dwells@cs.uiuc.edu>2001-04-24 21:20:05 (GMT)
commitb3961ff99f4bd16b4c755b83e7cb531cfe444ced (patch)
treef4c33ef3576f4823cd2bfc1158771e743c5dfb46 /pablo/HDFrecord_RT.h
parentbce863bc3abde48c85f11d9f5bbb8b61e93dc2c3 (diff)
downloadhdf5-b3961ff99f4bd16b4c755b83e7cb531cfe444ced.zip
hdf5-b3961ff99f4bd16b4c755b83e7cb531cfe444ced.tar.gz
hdf5-b3961ff99f4bd16b4c755b83e7cb531cfe444ced.tar.bz2
[svn-r3851]
Purpose: Bug fix. Description: The Pablo instrumentation would not build because the HAVE_PABLO flag was renamed H5_HAVE_PABLO. Also, there were problems with MPI I/O tracing when the MPI did not follow the MPI I/O standards exactly.A Solution: Renamed all conditional compiliation flags so that they begin H5_ . Added entries HDF_MPI_xxx for all MPI I/O functions HDF_MPI_xxx used in HDF. These functions record data, call the corresponding function MPI_xxx directly, then record exit data. Previously this was done in the MPI I/O portion of the Trace Library, but caused link conflicts. Platforms tested: IRIX64/IRIX32/Linux/Solaris/VClass32/VClass64
Diffstat (limited to 'pablo/HDFrecord_RT.h')
-rw-r--r--pablo/HDFrecord_RT.h67
1 files changed, 53 insertions, 14 deletions
diff --git a/pablo/HDFrecord_RT.h b/pablo/HDFrecord_RT.h
index 808eaef..3fb3f31 100644
--- a/pablo/HDFrecord_RT.h
+++ b/pablo/HDFrecord_RT.h
@@ -102,13 +102,52 @@
/*======================================================================*
// Enumeration of time fields in an HDFrec_t below *
//======================================================================*/
-enum TimeFields { HDF_, MPI, Malloc, AllIO, Open, Close, Read, Write, ARead,
- AWrite, Seek, Wait, Misc, nTallyFields };
+enum TimeFields { HDF_,
+ MPI,
+ Malloc,
+ AllIO,
+ Open,
+ Close,
+ Read,
+ Write,
+ Aread,
+ Awrite,
+ Seek,
+ Wait,
+ Misc,
+ MPIOread,
+ MPIOreadAll,
+ MPIOwrite,
+ MPIOwriteAll,
+ MPIOiRead,
+ MPIOiWrite,
+ MPIOother,
+ nTallyFields,
+ MPIOreadTrans,
+ MPIOreadAllTrans,
+ MPIOwriteTrans,
+ MPIOwriteAllTrans
+ };
/*======================================================================*
// Enumeration of byte fields in an HDFrec_t below *
//======================================================================*/
-enum ByteFields{ MallocBytes, ReadBytes, WriteBytes, AReadBytes, AWriteBytes,
- nByteFields };
+enum ByteFields{ MallocBytes,
+ ReadBytes,
+ WriteBytes,
+ AreadBytes,
+ AwriteBytes,
+ MPIOreadBytesReq,
+ MPIOreadBytesTrans,
+ MPIOwriteBytesReq,
+ MPIOwriteBytesTrans,
+ MPIOreadAllBytesReq,
+ MPIOreadAllBytesTrans,
+ MPIOwriteAllBytesReq,
+ MPIOwriteAllBytesTrans,
+ MPIOiReadBytesReq,
+ MPIOiWriteBytesReq,
+ nByteFields,
+ nHistFields = AwriteBytes+1 };
/*======================================================================*
// Definition of first and last IO event. *
//======================================================================*/
@@ -121,16 +160,16 @@ int BktLim[] = { 1, 4*ONEK, 64*ONEK, 256*ONEK, INT_MAX } ;
// Definition of structure used to account activity in an HDF call *
//======================================================================*/
typedef struct {
- int nCalls; /* number of proc calls */
- CLOCK lastCall; /* time of last call */
- CLOCK incDur; /* inclusive duration */
- CLOCK excDur; /* exclusive duration */
- CLOCK times[nTallyFields]; /* Tally op/calls times */
- int counts[nTallyFields]; /* Tally op/calls counts */
- int bytes[nByteFields]; /* Tally bytes transferred */
- int Hists[nByteFields][nBkts]; /* Historgrams */
- long hdfID; /* data set ID */
- long xRef; /* data set cross reference */
+ int nCalls; /* number of proc calls */
+ CLOCK lastCall; /* time of last call */
+ CLOCK incDur; /* inclusive duration */
+ CLOCK excDur; /* exclusive duration */
+ CLOCK times[nTallyFields]; /* Tally op/calls times */
+ int counts[nTallyFields]; /* Tally op/calls counts */
+ int bytes[nByteFields]; /* Tally bytes transferred */
+ int Hists[nHistFields][nBkts]; /* Historgrams */
+ long hdfID; /* data set ID */
+ long xRef; /* data set cross reference */
} HDFrec_t;
/*======================================================================*
// Node used to maintain linked lists of HDF procedure activity. *