Trace Library: Instrumentation Reference material
This reference material lists the routines provided by the Unix I/O extension to the Pablo trace library that can be called from C programs. The routines are grouped into subsections by functionality and listed alphabetically within each subsection.
- Machine Independent Initializaiton and Termination Routines
- Machine Independent Trace Event Production Control Routines
- Machine Independent File Open Routines
- Machine Independent File Close Routines
- Machine Independent Read Routines
- Machine Independent Seek Routines
- Machine Independent Write Routines
- Machine Independent Flush Routine
- Machine Independent I/O Interval Routines
- Machine Dependent Routines---Intel Paragon Systems
This reference material lists the routines provided by the Unix I/O extension to the Pablo trace library that can be called from FORTRAN programs. The routines are grouped into subsections by functionality and listed alphabetically within each subsection.
- Machine Independent Initialization and Termination Routines
- Machine Independent Trace Event Production Control Routines
- Machine Independent File Open Routines
- Machine Independent File Close Routines
- Machine Independent Read Routines
- Machine Independent Seek Routines
- Machine Independent Write Routines
- Machine Independent Flush Routine
- Machine Independent I/O Interval Routines
- Machine Dependent Routines---Intel Paragon Systems
Arguments for routines that are interfaces to standard library routines are not documented here---the reader should refer to the vendor-supplied manual pages for the standard routines; arguments to the tracing interface routines are identical.
SDDF Records Produced by the I/O Trace Extension
For complete documentation, you can download or request for e-mail delivery the following guides:
I/O Trace Extension Routines for C
Initialization & Termination
The routines listed in this section initialize and terminate the Pablo I/O trace extension. Every application instrumented to gather I/O performance information must initialize and terminate the I/O extension for correct results. endIOTrace void end IOTrace(void) Terminates the I/O extension. Before termination, all open files are detected and final statistics are written by the extension. In most applicaitons, this routine should be called just prior to calling endTracing. endTracing is part of the Pablo trace library and it must be called prior to termination of the application to ensure that all trace data is written to the trace output file.
initIOTrace void initIOTrace(void) Initialize the I/O extension and enable I/O tracing. Must be called from the application before any other I/O trace routines, with the exception of preInitIOTrace, are used.
preInitIOtrace void preInitIOTrace(void) Rarely used. Causes I/O event record descriptors to be output to the trace file. Can be called by the user prior to calling initIOTrace if the order of the descriptors in the output file is important. The application is not required to make this call in order to use the I/O extension.
setTraceFileName void setTraceFileName(char* fileName) Change the default tracefile name from Pablo.bin to the value contained in the string fileName.
setTraceProcessorNumber void setTraceProcessorNumber(int nodeID) Set the trace processor number to nodeID in the trace record. This is used in conjunction with MPI programs.
Trace Event Production Control Routines
The routines listed in this section allow the user to control the production of I/O trace event records. Various types of summaries can be selected, production of detailed trace records can be specified, and all I/O tracing can be disabled. disableFileRegionSummaries void disableFileRegionSummaries(void) Disable accumulation and production of file region summary records. File region summaries being accumulated when this call is made will be discarded. See also enableFileRegionSummaries.
disableIOdetail void disableIOdetail(void) Disable production of detailed I/O trace event records. This call is usually used in conjunction with one or more of the summary options to reduce the size of the generated trace output file. See also enableIOdetail.
disableIOtracing void disableIOtracing(void) Disable tracing of I/O events. If this call is used, special care should be taken in interpreting the generated trace file. I/O requests occurring in the applicaiton while I/O tracing is disabled will not be accounted for in the trace file. The user should interpret the trace file and reports generated from it with that in mind. See also enableIOTracing.
disableLifetimeSummaries void disableLifetimeSummaries(void) Disable accumulation and production of file lifetime summary records. Lifetime summaries being accumulated when this call is made will be discarded. See also enableLifetimeSummaries.
disableTimeWindowSummaries void disableTimeWindowSummaries(void) Disable accumulation and production of time window summary records. Time window summaries being accumulated when this call is made will be discarded. See also enableTimeWindowSummaries.
enableFileRegionSummaries void enableFileRegionSummaries( int fileRegionBytes ) fileRegionBytes: number of bytes in the file regions over which I/O activity is summarized
Enable accumulation and production of file region summary records. Detail open events are always produced when file region summaries are enabled. File region summary records will not be generatd for files that are already open when this call is made. If the memory allocation fails, a generic trace event with a warning message will be written and summaries will not be enabled. See also disableFileRegionSummaries, setFileRegionSize, and outputFileRegionSummaries.
enableIOdetail void enableIOdetail(void) Enable production of detailed I/O trace event records. This is the default behavior after the I/O extension has been initialized. See also disableIOdetail.
enableIOtracing void enableIOtracing(void) Enable tracing of I/O events. This is the default state after the I/O etension has been initialized with initIOTrace. If disableIOtracing has been called previously, this call will reenable tracing of I/O events. See also disableIOtracing.
enableLifetimeSummaries void enableLifetimeSummaries(void) Enable accumulation and production of file lifetime summary records. Lifetime summary records will not be generated for files that are already open when this call is made. If the memory allocation fails, a generic trace event with a warning message will be written and summaries will not be enabled. See also disableLifetimeSummaries.
enableTimeWindowSummaries void enableTimeWindowSummaries( double timeWindowSeconds ) timeWindowSeconds: number of seconds in the execution time window over which I/O requests are summarized
Enable accumulation and production of time window summary records. Detail open events are always produced when time window summaries are enabled. Time window summary records will not be generated for files that are already open when this call is made. If the memory allocation fails, a generic trace event with a warning message will be written and summaries will not be enabled. See also disableTimeWindowSumaries, setTimeWindowSize, and outputTmeWindowSummaries.
outputFileRegionSummaries void outputFileRegionSummaries(void) Force the output of file region summary records for all open files. File region summaries must be enabled for this to work. See also enableFileRegionSummaries and setFileRegionSize.
outputTimeWindowSummaries void outputTimeWindowSummaries(void) Force the output of time window summary records for all open files. Time window summaries must be enabled for this to work. See also enableTimeWindowSummaries and setTimeWindowSize.
setFileRegionSize void setFileRegionSize( int fileRegionBytes ) fileRegionBytes: number of bytes in the file regions over which I/O activity is summarized.
Change the file region size used for the file region summary records. See also enableFileRegionSummaries.
setTimeWindowSize void setTimeWindowSize( double timeWindowSeconds ) timeWindowSeconds: number of seconds in the execution time window over which I/O requests are summarized.
Change the time window size used for the time window summary records. See also enableTimeWindowSummaries.
File Open Routines
Routines in this section can be used to trace I/O file open requests. These routines are tracing extension interfaces to standard open request calls that are associated with trace Open events traceCREAT int traceCREAT( char *path, mode_t mode ) Interface to creat(2) with tracing provides tracing information.
traceFOPEN FILE *traceFOPEN( char *filename, char *type ) Interface to fopen(3), which provides tracing information.
trace2OPEN int trace2OPEN(char *path, int flags ) Interface to open(2) when called with two arguments, which provides tracing information.
trace3OPEN int trace3OPEN( char *path, int flags, mode_t mode ) Interface to open(2) when called with three arguments, which provides tracing information.
File Close Routines
Routines in this section can be used to trace I/O file close requests. These routines are tracking extension interfaces to standard I/O close request calls and are associated with trace Close events. traceFCLOSE int traceFCLOSE( FILE *stream ) Interface to fclose(3), which provides tracing information.
traceCLOSE int traceCLOSE( int fd ) Interface to close(2), which provides tracing information.
Read Routines
Routines in this section can be used to trace I/O file read requests. With the exception of traceReadBegin and traceReadEnd, these tracing extension routines are interfaces to standard calls that generate I/O read requests. All are associated with trace Read events. traceFGETC int traceFGETC( FILE *stream ) Interface to fgetc(3), which provides tracing information.
traceFGETS int traceFGETS( char *s, int n, FILE *stream ) Interface to fgets(3), which provides tracing information.
traceFREAD size_t traceFREAD( char *ptr, int size, int nitems, FILE *stream ) Interface to fread(3), which provides tracing information.
traceGETS int trace GETS( char *s ) Interface to gets(3), which provides tracing information.
traceGETW int traceGETW( FILE *stream ) Interface to getw(3), which provides tracing information.
traceREAD int traceREAD( int fd, char *buf, int nbyte ) Interface to read(2), which provides tracing information.
traceReadBegin void traceReadBegin( int fd, int numVariables, int cause ) fd: file descriptor numVariables: the number of variables we're reading cause: user-supplied integer "comment"
May be used to indicate the start of a group of one or more read requests that the user would like to have treated as a single read call by the trace library. Must be followed at some point by a call to traceReadEnd. Usually one of the traceREAD routines is used to replace the individual read request. This call gives the user the ability to attach a cause indicator to the detail Read trace record which is not provided when a traceREAD call is used. See also traceReadEnd.
traceReadEnd void traceReadEnd( int nbytes ) nbytes: number of bytes read.
May be used to indicate the end of a group of one or more read requests that the user would like to have treated as a single read call by the trace library. Must be preceded by a call to traceReadBegin. See also traceReadBegin.
Seek Routines
Routines in this section can be used to trace I/O file seek requests. These routines are tracing extension interfaces to standard calls that generate I /O seek requests. All are associated with trace Seek events. traceFSEEK int traceFSEEK( FILE *stream, long offset, int whence ) Interface to fseek(3), which provides tracing information.
traceFSETPOS void traceFSETPOS( FILE *stream, const fpos_t *position ) Interface to fsetpos(3), which provides tracing information.
traceLSEEK off_t traceLSEEK( int fd, off_t offset, int whence ) Interface to lseek(2), which provides tracing information.
traceREWIND void traceREWIND(FILE *stream ) Interface to rewind(3), which provides tracing information.
Write Routines
Routines in this section can be used to trace I/O file write requests. With the exception of traceWriteBegin and traceWriteEnd, these routines are tracing etension interfaces to standard calls that generate I/O write requests. All are associated with trace Write events. traceFPUTC int traceFPUTC( int c, FILE *stream ) Interface to fputc(3), which provides tracing information.
traceFPUTS int traceFPUTS( char *s, FILE *stream ) Interface to fputs(3) whih provides tracing information.
traceFWRITE size_t traceFWRITE( char *ptr, int size, int nitems, FILE *stream ) Interface to fwrite(3), which provides tracing information.
tracePUTS int tracePUTS( char *s ) Intrface to puts(3), which provides tracing information.
tracePUTW int tracePUTW( int w, FILE *stream ) Interface to putw(3), which provides tracing information.
traceWRITE int traceWrite( int fd, char *buf, int nbyte ) Interface to write(2), which provides tracing information.
traceWriteBegin void traceWriteBegin( int fd, int numVariables, int cause ) fd: file descriptor numVariables: the number of variables we're writing cause: user-supplied integer "comment"
May be used to indicate the start of a group of one or more write requests that the user would like to have treated as a single write call by the trace library. Must be followed at some point by a call to traceWriteEnd. Usually one of the traceWRITE routines is used to replace the individual write request. This call gives the user the ability to attach a cause indicator to the detail Write trace record that is not provided when a traceWrite call is used. See also traceWriteEnd.
traceWriteEnd void traceWriteEnd( int nbytes ) nbytes: number of bytes written
May be used to indicate the end of a group of one or more write requests the user would like to have treated as a single write call by the trace library. Must be preceded by a call to traceWriteBegin. See also traceWriteBegin.
Flush Routine
The routine in this section can be used to trace I/O file flush requests and provides a tracing extension interface to the standard call to flush a stream It is associated with trace Flush events. traceFFLUSH int traceFFLUSH( FILE *stream ) Interface to fflush(3), which provides tracing information.
Interval Routines
The routines in this section can be used to bracket any I/O call for which no tracing extension interface exists, but for which the user would like to record the duration or other information in the trace file. These routines are associated with trace Misc I/O events. traceIOBegin void traceIOBegin( int eventID, int fd ) eventID: an integer value that will appear in the Event Identifier field of the generated trace record.
fd: file descriptor of file associated with the I/O operation being measured.May be used to indicate the start of an I/O request the user wouldl ike to measure, but for which no direct tracing extension interface is provided. Must be followed by a call to traceIOEnd before any other calls to traceIOBegin are made. See also traceIOEnd.
traceIOEnd void traceIOEnd( int userInt, double userDbl, char *userStr ) userInt: an interger value that will appear in the Integer field of the generated trace record.
userDbl: a double value that will appear in the Double field of the generated trace record.
userStr: a character string that will appear in the String field of the generated trace record.may be used to indicate the end of an I/O request the user would like to measure, but for which no direct tracing extension interface is provided. The arguments, which are output in the generated Misc I/O trace record, are under complete control of the user. The Misc I/O trace record also contains the file identifier and elapsed time since the interval was started by a call to traceIOBegin.
Must be precded by a call to traceIOBegin. See also traceIOBegin.
Machine Dependent Routines
Intel Paragon SystemsThis is a list of the machine-dependent routines provided by the I/O extension to the Pablo trace library that are callable from C programs on Intel Paragon systems. All routines are interfaces to Intel standard library calls---the reader should refer to the Intel-supplied manual pages for the standard calls; arguments to the tracing interface calls are identical. traceCREAD trace_CREAD
traceCREADV
trace_CREADV
These synchronous read requests are associated with trace Read events
void traceCREAD( int fildes, har *buffer, unsigned int nbytes ) Interface to cread(3), which provides tracing information.
int trace_CREAD( int fildes, char *buffer, unsigned int nbytes ) Interface to _cread(3), which provides tracing information.
void traceCREADV( int fildes, struct iovec *iov, int iovcnt ) Interface to creadv(3), which provides tracing information.
int traceCREADV( int fildes, struct iovec *iov, int iovcnt ) Interface to _creadv(3), which provides tracing information.
traceCWRITE trace_CWRITE
traceCWRITEV
trace_CWRITEV
These synchronous write requests are associated with trace Write events.
void traceCWRITE( int fildes, char *buffer, unsigned int nbytes ) Interface to cwrite(3), which provides tracing information.
int trace_CWRITE( int fildes, char *buffer, unsigned int nbytes) Interface to _cwrite(3), which provides tracing information.
void traceCWRITEV( int fildes, struct iovec *iov, int iovcnt ) Interface to cwritev(3), which provides tracing information.
int traceCWRITEV( int fildes, struct iovec *iov, int iovcnt ) Interface to _cwritev(3), which provides tracing information
traceGOPEN trace_GOPEN
These global file open requests are associated with trace Global Open events
int traceGOPEN( const char *path, int oflag, int iomode, mode_t mode ) Interface to gopen(3), which provides tracing information.
int trace_GOPEN( const char *path, int oflag, int iomode, mode_t mode ) Interface to _gopen(3), which provides tracing information.
traceIODONE trace_IODONE
These requests to determine whether synchronous read or write operations have completed are associated with trace IO Wait events.
long traceIODONE( long id ) Interface to iodone(3), which provides tracing information.
long trace_IODONE( long id ) Interface to _iodone(3), which provides tracing information.
traceIOMODE trace_IOMODE
These requests to get the I/O mode of files are associated with trace IO Mode events
long traceIOMODE( int filedes ) Interface to iomode(3), which provides tracing information.
long trace_IOMODE( int filedes ) Interface to _iomode(3), which provides tracing information.
traceIOWAIT trace_IOWAIT
These requests to wait for the completion of asynchronous read or write operations are associated with trace IO Wait events.
void traceIOWAIT( long id ) Interface to iowait(3), which provides tracing information.
int trace_IOWAIT( long id ) Interface to _iowait(3), which provides tracing information.
traceIREAD trace_IREAD
traceIREADV
trace_IREADV
These asynchronous read requests are associated with trace Asynch Read events.
long traceIREAD( int fildes, char *buffer, unsigned int nbytes ) Interface to iread(3), which provides tracing information.
long trace_IREAD( int fildes, char *buffer, unsigned int nbytes ) Interface to _iread(3), which provides tracing information.
long traceIREADV( int fildes, struct iovec *iov, int iovcnt ) Interface to ireadv(3), which provides tracing information.
long traceIREADV( int fildes, struct iovec *iov, int iovcnt ) Interface to _ireadv(3), which provides tracing information.
traceIWRITE trace_IWRITE
traceIWRITEV
trace_IWRITEV
These asynchronous write requests are associated with trace Asynch Write events.
long traceIWRITE( int fildes, char *buffer, unsigned int nbytes ) Interface to iwrite(3), which provides tracing information.
long trace_IWRITE( int fildes, char *buffer, unsigned int nbytes ) Interface to _iwrite(3), which provides tracing information.
long traceIWRITEV( int filde, struct iovec *iov, int iovnt ) Interface to iwritev(3), which provides tracing information.
long trace_IWRITEV( int fildes, struct iovec *iov, int iovcnt ) Interface to _iwritev(3), which provides tracing information.
traceLSIZE trace_LSIZE
These requests to set or increase the size of files are associated with trace Lsize events.
long traceLSIZE( int fileID, off_t offset, int whence ) Interface to lsize(3), which provides tracing information.
long trace_LSIZE( int fileID, off_t offset, int whence ) Interface to _lsize(3), which provides tracing information.
traceSETIOMODE trace_SETIOMODE
These requests to set the I/O mode of files are associated with trace IO Mode events.
void traceSETIOMODE( int fildes, int iomode ) Interface to setiomode(3), which provides tracing information.
long trace_SETIOMODE( int fildes, int iomode ) Interface to _setiomode(3), which provides tracing information.
I/O Trace Extension Bracketing Routines for FORTRAN
Since most I/O requests are implemented as statements in the FORTRAN language and not library calls, it is not possible to simply replace the I/O statements with corresponding Pablo library routines to gather performance information. Instead, to instrument a FORTRAN I/O request, the user must bracket the I/O statement with calls to routines in the I/O extension library that record the beginning and end times of the actual I/O request, together with other relevant data. For example, calls to traceOpenBegin and traceOpenEnd should be placed just before and afer a FORTRAN OPEN statement---they should bracket the I/O statement.
The I/O extension routine names are listed using both upper- and lower-case characters to improve readability. Since FORTRAN does not distinguish between upper- and lower-case characters, only the actual name and not the case of the characters is important. In fact, the I/O extension implements these as C functions using all lower-case letters with a trailing underscore. To illustrate: in a FORTRAN program, ENDIOTRACE() is equivalent to endIOtrace() is equivalent to eNdIoTrAcE(), and so on. The I/O extension bivrary routine that actually gets called in endiotrace_(). The call is included in this list as endIOTrace().
The machine-dependent I/O requests are implemented as library routines and therefore can be replaced by tracing interface routines. Arguments for those routines that are interfaces to standard library routines are not documented here---the reader should refer to the vendor-supplied manual pages for the standard routines; arguments to the tracing interface routines are identical.
Initialization & Termination
The routines listed in this section initialize and terminate the Pablo I/O trace extension. Every application instrumented to gather I/O performance informaiton must initialize and terminate the I/O extension for correct results. endIOTrace subroutine end IOTrace() Terminates the I/O extension. Before termination, all open files are detected and final statistics are written by the extension. In most applicaitons, this routine should be called just prior to calling endTracing. endTracing is part of the Pablo trace library and it must be called prior to termination of the application to ensure that all trace data is written to the trace output file.
initIOTrace subroutine initIOTrace() Initialize the I/O extension and enable I/O tracing. Must be called from the application before any other I/O trace routines, with the exception of preInitIOTrace, are used.
preInitIOtrace subroutine preInitIOTrace() Causes I/O event record descriptors to be output to the trace file. Can be called by the user prior to calling initIOTrace if the order of the descriptors in the output file is important. The application is not required to make this call in order to use the I/O extension.
Trace Event Production Control Routines
The routines listed in this section allow the user to control the production of I/O trace event records. Various types of summaries can be selected, production of detailed trace records can be specified, and all I/O tracing can be disabled. disableFileRegionSummaries subroutine disableFileRegionSummaries() Disable accumulation and production of file region summary records. File region summaries being accumulated when this call is made will be discarded. See also enableFileRegionSummaries.
disableIOdetail subroutine disableIOdetail() Disable production of detailed I/O trace event records. This call is usually used in conjunction with one or more of the summary options to reduce the size of the generated trace output file. See also enableIOdetail.
disableIOtracing subroutine disableIOtracing() Disable tracing of I/O events. If this call is used, special care should be taken in interpreting the generated trace file. I/O requests occurring in the application while I/O tracing is disabled will not be accounted for in the trace file. The user should interpret the trace file and reports generated from it with that in mind. See also enableIOTracing.
disableLifetimeSummaries subroutine disableLifetimeSummaries() Disable accumulation and production of file lifetime summary records. Lifetime summaries being accumulated when this call is made will be discarded. See also enableLifetimeSummaries.
disableTimeWindowSummaries subroutine disableTimeWindowSummaries() Disable accumulation and production of time window summary records. Time window summaries being accumulated when this call is made will be discarded. See also enableTimeWindowSummaries.
enableFileRegionSummaries subroutine enableFileRegionSummaries( integer fileRegionBytes ) fileRegionBytes: number of bytes in the file regions over which I/O activity is summarized
Enable accumulation and production of file region summary records. Detail open events are always produced when file region summaries are enabled. File region summary records will not be generatd for files that are already open when this call is made. If the memory allocation fails, a generic trace event with a warning message will be written and summaries will not be enabled. See also disableFileRegionSummaries, setFileRegionSize, and outputFileRegionSummaries.
enableIOdetail subroutine enableIOdetail() Enable production of detailed I/O trace event records. This is the default behavior after the I/O extension has been initialized. See also disableIOdetail.
enableIOtracing subroutine enableIOtracing() Enable tracing of I/O events. This is the default state after the I/O etension has been initialized with initIOTrace. If disableIOtracing has been called previously, this call will reenable tracing of I/O events. See also disableIOtracing.
enableLifetimeSummaries subroutine enableLifetimeSummaries() Enable accumulation and production of file lifetime summary records. Lifetime summary records will not be generated for files that are already open when this call is made. If the memory allocation fails, a generic trace event with a warning message will be written and summaries will not be enabled. See also disableLifetimeSummaries.
enableTimeWindowSummaries subroutine enableTimeWindowSummaries( double precision timeWindowSeconds ) timeWindowSeconds: number of seconds in the execution time window over which I/O requests are summarized
Enable accumulation and production of time window summary records. Detail open events are always produced when time window summaries are enabled. Time window summary records will not be generated for files that are already open when this call is made. If the memory allocation fails, a generic trace event with a warning message will be written and summaries will not be enabled. See also disableTimeWindowSumaries, setTimeWindowSize, and outputTmeWindowSummaries.
outputFileRegionSummaries subroutine outputFileRegionSummaries() Force the output of file region summary records for all open files. File region summaries must be enabled for this to work. See also enableFileRegionSummaries and setFileRegionSize.
outputTimeWindowSummaries subroutine outputTimeWindowSummaries() Force the output of time window summary records for all open files. Time window summaries must be enabled for this to work. See also enableTimeWindowSummaries and setTimeWindowSize.
setFileRegionSize subroutine setFileRegionSize( integer fileRegionBytes ) fileRegionBytes: number of bytes in the file regions over which I/O activity is summarized.
Change the file region size used for the file region summary records. See also enableFileRegionSummaries.
setTimeWindowSize subroutine setTimeWindowSize( double precision timeWindowSeconds ) timeWindowSeconds: number of seconds in the execution time window over which I/O requests are summarized.
Change the time window size used for the time window summary records. See also enableTimeWindowSummaries.
File Open Routines
Routines in this section can be used to trace I/O file open requests and are associated with trace Open events traceOpenBegin subroutine traceOpenBegin( character*(*) file, integer flags ) file: file to open flags: user-supplied value
Used to indicate the start of a open request. This call should be inserted just prior to a FORTRAN OPEN statement. See also traceOpenEnd()
traceOpenEnd subroutine traceOpenEnd( integer unit ) unit: unit specifier
Used to indicate the end of a open request. This call should be inserted immediately after a FORTRAN OPEN statement. See also traceOpenBegin().
File Close Routines
Routines in this section can be used to trace I/O file close requests and are associated with trace Close events. traceCloseBegin subroutine traceCloseBegin( integer unit ) unit: unit specifier
Used to indicate the start of a close request. This call should be inserted just prior to a FORTRAN CLOSE statement. See also traceOpenEnd().
traceCloseEnd subroutine traceCloseEnd() Used to indicate the end of a close request.This call should be inserted immediately after a FORTRAN CLOSE statement. See also traceCloseBegin().
Read Routines
Routines in this section can be used to trace I/O file read requests and are associated with trace Read events. traceReadBegin subroutine traceReadBegin( integer unit, integer num Variables, integer cause ) unit: unit specifier numVariables: the number of variables we're reading cause: user-supplied integer "comment"
Used to indicate the start of a read request. This call should be inserted just prior to a FORTRAN READ statement. See also traceReadEnd.
traceReadEnd subroutine traceReadEnd( integer nbytes ) nbytes: number of bytes read.
Used to indicate the end of a read request. This call should be inserted immediately after a FORTRAN READ statement. In FORTRAN, there is no indication to the programmer of the actual number of bytes read, so it is the programmer's responsibility to give their best estimate of the bytes read. See also traceReadBegin.
Seek Routines
Routines in this section can be used to trace I/O file seek requests and are associated with trace Seek events. traceRewindBegin subroutine traceRewindBegin( integer unit ) unit: unit specifier
Used to indicate the start of a rewind request. This call should be inserted just prior to a FORTRAN REWIND statement. See also traceRewindEnd.
traceRewindEnd subroutine traceRewindEnd() Used to indicate the end of a rewind request. This call should be inserted immediately after a FORTRAN REWIND statement. See also traceRewindBegin.
Write Routines
Routines in this section can be used to trace I/O file write requests. All are associated with trace Write events. traceWriteBegin subroutine traceWriteBegin( integer unit, integer numVariables, integer cause ) unit: unitspecifier numVariables: the number of variables we're writing cause: user-supplied integer "comment"
Used to indicate the start of a write request. This call should be inserted just prior to a FORTRAN WRITE statement. See also traceWriteEnd.
traceWriteEnd subroutine traceWriteEnd( integer nbytes ) nbytes: number of bytes written
Used to indicate the end of a write request. This call should be inserted immediately after a FORTRAN WRITE statement. In FORTRAN, there is no indication to the programmer of the actual nmber of bytes written so it is the programmer's responsibility to give their best estimate of the bytes written. See also traceWriteBegin.
Flush Routine
The routine in this section can be used to trace I/O file flush requests and provides a tracing extension interface to the standard call to flush a file. It is associated with trace Flush events. traceFLUSH subroutine traceFLUSH( integer unit ) Interface to flush(3F), which provides tracing information.
Interval Routines
The routines in this section can be used to bracket any I/O call for which no specific I/O tracing extension interface exists, but for which the user would like to record the duration or other information in the trace file. These routines are associated with trace Misc I/O events. traceIOBegin subroutine traceIOBegin( integer eventID, integer unit ) eventID: an integer value that will appear in the Event Identifier field of the generated trace record.
unit unit specifier for file associated with the I/O operation being measured.May be used to indicate the start of an I/O request the user would like to measure, but for which no other tracing interface is provided. Must be followed by a call to traceIOEnd before any other calls to traceIOBegin are made. See also traceIOEnd.
traceIOEnd subroutine traceIOEnd( int userInt, double userDbl, char *userStr ) userInt: an interger value that will appear in the Integer field of the generated trace record.
userDbl: a double value that will appear in the Double field of the generated trace record.
userStr: a character string that will appear in the String field of the generated trace record.May be used to indicate the end of an I/O request the user would like to measure, but for which no other tracing interface is provided. The arguments, which are output in the generated Misc I/O trace record, are under complete control of the user. The Misc I/O trace record also contains the file identifier and elapsed time since the interval was started by a call to traceIOBegin.
Must be preceded by a call to traceIOBegin. See also traceIOBegin.
Machine Dependent Routines
Intel Paragon SystemsThis is a list of the machine-dependent routines provided by the I/O extension to the Pablo trace library that are callable from FORTRAN programs on Intel Paragon systems. All routines are interfaces to Intel standard library calls---the reader should refer to the Intel-supplied manual pages for the standard calls; arguments to the tracing interface calls are identical. traceCREAD traceCREADV
These synchronous read requests are associated with trace Read events
subroutine traceCREAD( integer fildes, har *buffer, unsigned integer nbytes ) Interface to cread(3), which provides tracing information.
subroutine traceCREADV( integer fildes, struct iovec *iov, integer iovcnt ) Interface to creadv(3), which provides tracing information.
traceCWRITE traceCWRITEV
These synchronous write requests are associated with trace Write events.
subroutine traceCWRITE( integer unit, integer buffer(*), unsigned integer nbytes ) Interface to cwrite(3f), which provides tracing information.
subroutine traceCWRITEV( integer unit, integer iov(*), integer iovcnt ) Interface to cwritev(3f), which provides tracing information.
traceFORFLUSH This request to force completion of all buffered I/O to a specific file is associated with the trace Flush event.
subroutine traceFORFLUSH( integer unit )
Interface to flush(3f), which provides tracing information.
traceGOPEN This global file open requests are associated with trace Global Open events
subroutine traceGOPEN( integer unit, character *(*) path, integer iomode ) Interface to gopen(3f), which provides tracing information.
traceIODONE This request to determine whether synchronous read or write operations has completed isassociated with the trace IO Wait event.
integer function traceIODONE( integer id ) Interface to iodone(3f), which provides tracing information.
traceIOMODE trace_IOMODE
These requests to get the I/O mode of files are associated with trace IO Mode events
long traceIOMODE( integer filedes ) Interface to iomode(3), which provides tracing information.
long trace_IOMODE( integer filedes ) Interface to _iomode(3), which provides tracing information.
traceIOWAIT trace_IOWAIT
These requests to wait for the completion of asynchronous read or write operations are associated with trace IO Wait events.
integer function traceIOWAIT( long id ) Interface to iowait(3), which provides tracing information.
int trace_IOWAIT( long id ) Interface to _iowait(3), which provides tracing information.
traceIREAD trace_IREAD
traceIREADV
trace_IREADV
These asynchronous read requests are associated with trace Asynch Read events.
long traceIREAD( integer fildes, char *buffer, unsigned integer nbytes ) Interface to iread(3), which provides tracing information.
long trace_IREAD( integer fildes, char *buffer, unsigned integer nbytes ) Interface to _iread(3), which provides tracing information.
long traceIREADV( integer fildes, struct iovec *iov, integer iovcnt ) Interface to ireadv(3), which provides tracing information.
long traceIREADV( integer fildes, struct iovec *iov, integer iovcnt ) Interface to _ireadv(3), which provides tracing information.
traceIWRITE trace_IWRITE
traceIWRITEV
trace_IWRITEV
These asynchronous write requests are associated with trace Asynch Write events.
long traceIWRITE( integer fildes, char *buffer, unsigned integer nbytes ) Interface to iwrite(3), which provides tracing information.
long trace_IWRITE( integer fildes, char *buffer, unsigned integer nbytes ) Interface to _iwrite(3), which provides tracing information.
long traceIWRITEV( integer filde, struct iovec *iov, integer iovnt ) Interface to iwritev(3), which provides tracing information.
long trace_IWRITEV( integer fildes, struct iovec *iov, integer iovcnt ) Interface to _iwritev(3), which provides tracing information.
traceLSIZE trace_LSIZE
These requests to set or increase the size of files are associated with trace Lsize events.
long traceLSIZE( integer fileID, off_t offset, integer whence ) Interface to lsize(3), which provides tracing information.
long trace_LSIZE( integer fileID, off_t offset, integer whence ) Interface to _lsize(3), which provides tracing information.
traceSETIOMODE trace_SETIOMODE
These requests to set the I/O mode of files are associated with trace IO Mode events.
subroutine traceSETIOMODE( integer fildes, integer iomode ) Interface to setiomode(3), which provides tracing information.
long trace_SETIOMODE( integer fildes, integer iomode ) Interface to _setiomode(3), which provides tracing information.
MPI I/O Trace Routines
The procedure for real-time tracing is only slightly different from the procedure for runtime tracing . To enable real-time tracing, the call initMPIOTrace should have "1" as the tracing option, which is the second parameter in the call. To instrument the program in the sample code with the real-time tracing option, comment out line 22 and uncomment line 24. Versions for both C and FORTRAN are available below.
Initialization & Termination Routines for C
The routines listed in this section initialize and terminate the Pablo MPI I/O trace extension. Every application instrumented to gather MPI I/O performance information must initialize and terminate the MPI I/O extension for correct results. initMPIOTrace Initializes the Pablo MPI I/O tracing environment.
synopsis: #include "MPIO_Trace.h"
void initMPIOTrace( char *traceFile, int traceType);Parameters:
traceFile: The name of the trace file to which the trace records will
be written. The suffix ".ndXX", where XX represents a MPI process
number, will be added to the specified trace file name automatically.traceType: The type of trace to produce. Options are 0 and 1. If "0" is
specified, then the runtime tracing option is chosen; if "1" is specified,
then the real-time tracing option is chosen.endMPIOTrace Terminates the Pablo MPI I/O tracing environment.
synopsis: #include "MPIO_Trace.h"
void endMPIOTrace( void );Initialization & Termination Routines for FORTRAN
The routines listed in this section initialize and terminate the Pablo MPI I/O trace extension. Every application instrumented to gather MPI I/O performance information must initialize and terminate the MPI I/O extension for correct results. initMPIOTrace Initializes the Pablo MPI I/O tracing environment.
synopsis: include 'fMPIO_Trace.h'
character*(*) tracefile
integer traceType, nameLen
subroutine initMPIOTrace( traceFile, nameLen, traceType)Parameters:
traceFile: The name of the trace file to which the trace records will
be written. The suffix ".ndXX", where XX represents a MPI process
number, will be added to the specified trace file name automatically.nameLen: The length of the name traceFile
traceType: The type of trace to produce. Options are 0 and 1. If "0" is
specified, then the runtime tracing option is chosen; if "1" is specified,
then the real-time tracing option is chosen.endMPIOTrace Terminates the Pablo MPI I/O tracing environment.
synopsis: include 'fMPIO_Trace.h'
subroutine endMPIOTrace()
HDF Trace Extension Routines
Any HDF code that call call FORTRAN or C programs can be instrumented. For your code to produce output from HDF and I/O calls, the main program must be modified slightly. The modifications involve inserting a call to initialize tracing before any HDF calls are made and a call to end tracing prior to exiting from the program. The procedure for real-time tracing is only slightly different from the procedure for runtime tracing . To enable real-time tracing, the call HDFinitTrace should have "1" as the tracing option, which is the second parameter in the call. Versions for both C and FORTRAN are available below.
Initialization & Termination Routines for C
The routines listed in this section initialize and terminate the Pablo HDF trace extension. Every application instrumented to gather HDF performance information must initialize and terminate the HDF extension for correct results. HDFinitTrace Initializes the Pablo HDF tracing environment.
This function is called to specify the name of the trace file(s), the procedures to be traced, and the type of tracing to be performed. It accepts a variable length parameter list. The first parameter is the root name of the trace file and the last parameter is the type of tracing to be performed. Between the first and last parameters, is a list of unsigned integers called trace IDs that specifies the HDF procedures that are to be traced. The user may enable tracing of individual HDF procedures and individual HDF source files. If an HDF source file is traced, all routines within the file will be traced. The unsigned integer trace IDs associated with the procedures and HDF source files are defined in the include file ProcTrace.h. The trace ID associated with a specific procedure has the form ID_<procedure> where <procedure> is the name of the procedure. The trace ID associated with a source file has the form ID_<file>_c where<file> is the root name of the source file. For eample, ID_H5Topen is the trace ID for the procedure H5Topen; ID_H5A_c is the trace ID for the source file H5A.c. The trace ID ID_ALLHDF will enable tracing of all HDF procedures. synopsis:
#include "ProcTrace.h"
void HDFinitTrace( char *traceFile,
unsigned traceID1, [traceID2, ...,]
int traceType );Parameters:
traceFile: The root name of the file to which the output will be written.
If the program is run in serial mode, the trace file produced will be named
<traceFile> where <traceFile> contains the contents of the character string
traceFile. If the program is run with MPI, for each processor, a file name
<traceFlie>.ndp will be produced where p is the number of the processor.Note: For best results, the file system contaning the trace files should be different from the file system containing the files used as input and output for the program being traced.
traceID1, [traceID2, ...,]: This is a nonempty list of trace IDs
specifying the procedures to be traced. Each trace ID may represent either an
individual procedure or a source file in the HDF library. In the case where
the ID represents a source file, all procedures in that file will be traced.
An arbitrary number of trace IDs may be passed. The include file ProcTrace.h
in the HDF include directory contains the definitions of the trace IDs
associated with the HDF procedures and HDF library source files. Passing the
value ID_ALLHDF causes all HDF procedures to be traced.traceType: The type of trace to produce. It is an integer indicating the
type of SDDF output and program execution:
traceType=RUNTIME_TRACE,
perform Runtime tracing when the program is sun in serial mode.
traceType=MPI_RUNTIME_TRACE,
perform runtime tracing when the program is run using MPI. This
option is not valid with HDF version 4.
traceType=SUMMARY_TRACE,
perform Summary Tracing when the program is run in serial mode.
traceType=MPI_SUMARY_TRACE,
perform Summary Tracing when the program is run using MPI. This
option is not valid with HDF version 4.The constants RUNTIME_TRACE, MPI_RUNTIME_TRACE, SUMMARY_TRACE, and MPI_SUMMARY_TRACE are defined in the include file ProcTrace.h as are the values of the trace IDs.
HDFendTrace Terminates the Pablo MPI I/O tracing environment.
synopsis: #include "MPIO_Trace.h"
void endMPIOTrace( void );Initialization & Termination Routines for FORTRAN
The routines listed in this section initialize and terminate the Pablo MPI I/O trace extension. Every application instrumented to gather MPI I/O performance information must initialize and terminate the MPI I/O extension for correct results. initMPIOTrace Initializes the Pablo MPI I/O tracing environment.
synopsis: include 'fMPIO_Trace.h'
character*(*) tracefile
integer traceType, nameLen
subroutine initMPIOTrace( traceFile, nameLen, traceType)Parameters:
traceFile: The name of the trace file to which the trace records will
be written. The suffix ".ndXX", where XX represents a MPI process
number, will be added to the specified trace file name automatically.nameLen: The length of the name traceFile
traceType: The type of trace to produce. Options are 0 and 1. If "0" is
specified, then the runtime tracing option is chosen; if "1" is specified,
then the real-time tracing option is chosen.endMPIOTrace Terminates the Pablo MPI I/O tracing environment.
synopsis: include 'fMPIO_Trace.h'
subroutine endMPIOTrace()
SDDF Records Produced by the I/O Trace Extension
SDDF Event Descriptors for Trace RecordsThe SDDF records described in this section define the layout of
the corresponding data records.This is mechanism for defining data contained in the
individual fields comprising each SDDF record. |
|
I/O Detail Trace Records |
|
OpenOpenOpenOpen |
#321 // "description" "IO Open" "Open" { //"Time" "Timestamp" int "Timestamp"[]; //"Seconds" "Floating Point Timestamp double "Seconds"; //Event ID" "Corresponding event" // "700001" "open" // "700003" "fopen" int "Event Identifier"; //"Node" "Processor number" int "Processor number"; //"Duration" "Event duration in seconds" double "Duration"; //"File ID" "Unique file identifier" int "File ID"; //"Flags" "Flage supplied at file open" int "Flags"; //"Mode" "Mode supplied at file open" // "-1" "No mode specified" int "Mode"; //"file Name" "Name of file supplied at file open" char "File Name" []; };; |
FlushFlushFlushFlush |
#329 // "description" "IO Flush" "Flush" { //"Time" "Timestamp" int "Timestamp"[]; //"Seconds" "Floating Point Timestamp double "Seconds"; //Event ID" "Corresponding event" // "700021" "fflush" // "700023" "flush" // "800029" "forflush" int "Event Identifier"; //"Node" "Processor number" int "Processor number"; //"Duration" "Event duration in seconds" double "Duration"; //"File ID" "Unique file identifier" //"-2" "indicates stream argument was NULL in fflush()" int "File ID"; };; |
CloseCloseClose |
#337 // "description" "IO Close" "Close" { //"Time" "Timestamp" int "Timestamp"[]; //"Seconds" "Floating Point Timestamp double "Seconds"; //Event ID" "Corresponding event" // "700005" "close" // "700007" "fclose" int "Event Identifier"; //"Node" "Processor number" int "Processor number"; //"Duration" "Event duration in seconds" double "Duration"; //"File ID" "Unique file identifier" int "File ID"; };; |
ReadReadReadRead |
#345 // "description" "IO Read" "Read" { //"Time" "Timestamp" int "Timestamp"[]; //"Seconds" "Floating Point Timestamp double "Seconds"; //Event ID" "Corresponding event" // "700009" "read" // "700011" "fread" // "800001" "cread" // "800003" "creadv" int "Event Identifier"; //"Node" "Processor number" int "Processor number"; //"Duration" "Event duration in seconds" double "Duration"; //"File ID" "Unique file identifier" int "File ID"; //"Number Bytes" "Number of bytes read" int "Number Bytes"; //"Number Variables" "Number of variables read" int "Number Variables"; //"Cause" "User-supplied value" //"-1" "Produced by automatic instrumentation" int "Cause"; };; |
SeekSeekSeekSeek |
#353 // "description" "IO Seek" "Seek" { //"Time" "Timestamp" int "Timestamp"[]; //"Seconds" "Floating Point Timestamp double "Seconds"; //Event ID" "Corresponding event" // "700013" "read" // "700015" "fread" // "700025" "cread" // "700027" "creadv" int "Event Identifier"; //"Node" "Processor number" int "Processor number"; //"Duration" "Event duration in seconds" double "Duration"; //"File ID" "Unique file identifier" int "File ID"; //"Number Bytes" "Number of bytes traversed" int "Number Bytes"; //"Offset" "Byte offset from position indicated by Whence" int "Offset"; //"Whence" "Indicates file position the Offset is measured from" //"0" "SEEK_SET" //"1" "SEEK_CUR" //"2" "SEEK_END" int "Whence"; };; |
WriteWriteWrite |
#361 // "description" "IO Write" "Write" { //"Time" "Timestamp" int "Timestamp"[]; //"Seconds" "Floating Point Timestamp double "Seconds"; //Event ID" "Corresponding event" // "700017" "write" // "700019" "fwrite" // "800005" "cwrite" // "800007" "cwritev" int "Event Identifier"; //"Node" "Processor number" int "Processor number"; //"Duration" "Event duration in seconds" double "Duration"; //"File ID" "Unique file identifier" int "File ID"; //"Number Bytes" "Number of bytes written" int "Number Bytes"; //"Number Variables" "Number of variables written" int "Number Variables"; //"Cause" "User-supplied value" //"-1" "Produced by automatic instrumentation int "Cause"; };; |
MiscIOMiscIOMiscIO |
#401 // "description" "Miscellaneous I/O Event" "Misc I/O" { //"Time" "Timestamp" int "Timestamp"[]; //"Seconds" "Floating Point Timestamp double "Seconds"; //Event ID" "Corresponding event" // "all values" "supplied by user" int "Event Identifier"; //"Node" "Processor number" int "Processor Number"; //"Duration" "Event duration in seconds" double "Duration"; //"File ID" "Unique file identifier" int "File ID"; //"Integer" "user-supplied integer" int "Integer"; //"Double" "User-supplied double" double "Double" //"String" "User-supplied string" char "String"[] };; |
| I/O Summary Records | |
File Lifetime
Summary |
#369 // "description" "IO File Lifetime Summary" "File Lifetime Summary" { //"Time" "Timestamp" int "Timestamp"[]; //"Seconds" "Floating Point Timestamp double "Seconds"; //"Event ID" "Corresponding event" //"700040" "lifetime summary" int "Event Identifier"; //"Node" "Processor number" int "Processor number"; //"Duration" "Event duration in seconds" double "Duration"; //"File ID" "Unique file identifier" int "File ID"; //"Mode" "Mode supplied at file open" //"-1" "No mode specified" int "Mode"; //"Lifetime" "Time file was open (excluding overhead) in seconds" double "Lifetime"; //"Overhead" "Duration of Open and Close in seconds" double "Overhead"; //"Read Count" "Number of reads" int "Read Count"; //"Read Number Bytes" "Number of bytes read" int "Read Number Bytes"; //"Read Duration" "Duration of Reads in seconds" double "Read Duration"; //"Seek Count" "Number of seeks" int "Seek Count"; //"Seek Number Bytes" "Number of bytes traversed by seeks" int "Seek Number Bytes"; //"Seek Duration" "Duration of Seeks in seconds" double "Seek Duration"; //"Write Count" "Number of writes" int "Write Count"; //"Write Number Bytes" "Number of bytes written" int "Write Number Bytes"; //"Write Duration" "Duration of Writes in seconds" double "Write Duration"; //"File Name" "Name of the file supplied at fle open" char "File Name"[]; };; |
Time Window
Summary |
#377 // "description" "IO Time Window Summary by File" "Time Window Summary" { //"Time" "Timestamp" int "Timestamp"[]; //"Seconds" "Floating Point Timestamp double "Seconds"; //Event ID" "Corresponding event" //"700041" "time window summary" int "Event Identifier"; //"Node" "Processor number" int "Processor Number"; //"Active Duration" "Time between first and last I/O access in seconds" //"Note" "Value is 0 if fewer than two accesses occured" double "Active Duration"; //"File ID" "Unique file identifier" int "File ID"; //"Summary Trigger" "Indicates what triggered time window summary" //"0" "New time window" //"1" "File closed" //"2" "Forced by call to outputTimeWindowSummaries()" int "Summary Trigger"; //"Read Count" "Number of reads in time window" int "Read Count"; //"Read Number Bytes" "Number of bytes read in time window" int "Read Number Bytes"; //"Read Duration" "Seconds spent reading in time window" double "Read Duration"; //"Seek Count" "Number of seeksin time window" int "Seek Count"; //"Seek Number Bytes" "Number of bytes traversed by seeks in window" int "Seek Number Bytes"; //"Seek Duration" "Seconds spent seeking in time window" double "Seek Duration"; //"Write Count" "Number of writes in time window" int "Write Count"; //"Write Number Bytes" "Number of bytes written in time window" int "Write Number Bytes"; //"Write Duration" "Seconds spent writing in time window" double "Write Duration"; //"First Byte" "First byte accessed during time window" //"Note" "Value is -1 if no bytes were accessed" int "First Byte"; //"Last Byte" "Last byte accessed during time window" //"Note" "Value is -1 if no bytes were accessed" int "Last Byte"; };; |
File Region
Summary |
#385 // "description" "IO Time Window Summary by File" "Time Window Summary" { //"Time" "Timestamp" int "Timestamp"[]; //"Seconds" "Floating Point Timestamp double "Seconds"; //Event ID" "Corresponding event" //"700041" "time window summary" int "Event Identifier"; //"Node" "Processor number" int "Processor Number"; //"Active Duration" "Time between first and last I/O access in seconds" //"Note" "Value is 0 if fewer than two accesses occured" double "Active Duration"; //"File ID" "Unique file identifier" int "File ID"; //"Summary Trigger" "Indicates what triggered time window summary" //"0" "New time window" //"1" "File closed" //"2" "Forced by call to outputTimeWindowSummaries()" int "Summary Trigger"; //"Read Count" "Number of reads in time window" int "Read Count"; //"Read Number Bytes" "Number of bytes read in time window" int "Read Number Bytes"; //"Read Duration" "Seconds spent reading in time window" double "Read Duration"; //"Seek Count" "Number of seeksin time window" int "Seek Count"; //"Seek Number Bytes" "Number of bytes traversed by seeks in window" int "Seek Number Bytes"; //"Seek Duration" "Seconds spent seeking in time window" double "Seek Duration"; //"Write Count" "Number of writes in time window" int "Write Count"; //"Write Number Bytes" "Number of bytes written in time window" int "Write Number Bytes"; //"Write Duration" "Seconds spent writing in time window" double "Write Duration"; //"First Byte" "First byte accessed during time window" //"Note" "Value is -1 if no bytes were accessed" int "First Byte"; //"Last Byte" "Last byte accessed during time window" //"Note" "Value is -1 if no bytes were accessed" int "Last Byte"; };; |
| I/O Extension Status Records | |
IO Trace State |
#385 // "description" "State Change in I/O Tracing" "IO Trace State" { //"Time" "Timestamp" int "Timestamp"[]; //"Seconds" "Floating Point Timestamp double "Seconds"; //Event ID" "Corresponding event" //"700101" "End of IO Tracing" //"700102" "Enable IO Tracing" //"700103" "Disable IO Tracing" //"700104" "Enable IO Detail Tracing" //"700105" "Disable IO Detail Tracing" //"700106" "Enable IO Lifetime Summary" //"700107" "Disable IO Lifetime Summary" //"700108" "Enable IO Time Window Summary" //"700109" "Disable IO Time Window Summary" //"700110" "Change Time Window Size" //"700111" "Enable IO File Region Summary" //"700112" "Disable IO File Region Summary" //"700113" "Change File Region Size" int "Event Identifier"; //"Node" "Processor number" int "Processor Number"; //"Request Status" "Corresponding outcome of state change request" //"-1" "Unable to complete request" //"0" "Request completed successfully" //"1" "Requested state same as current state" int "Request Status"; //"IO Tracing" "0 = disabled; 1 = enabled" int "IO Tracing"; //"Detailed Trace" "0 = disabled; 1 = enabled" int "Detailed Trace"; //"Lifetime Summaries" "0 = disabled; 1 = enabled" int "Lifetime Summaries"; //"Time Window Summaries" "0 = disabled; >0 = window size" double "Time Window Summaries"; //"File Region Summaries" "0 = disabled; >0 = region size" int "File Region Summaries"; };; |
| I/O Detail Records-Intel Paragon Systems | |
Async Read |
#345 // "description" "Asynch IO Read - Intel" "Asynch Read" { //"Time" "Timestamp" int "Timestamp"[]; //"Seconds" "Floating Point Timestamp double "Seconds"; //Event ID" "Corresponding event" // "800009" "iread" // "800011" "fread" int "Event Identifier"; //"Node" "Processor number" int "Processor number"; //"Duration" "Event duration in seconds" double "Duration"; //"File ID" "Unique file identifier" int "File ID"; //"Number Bytes" "Number of bytes requested" int "Number Bytes"; //"Number Variables" "Number of variables requested" int "Number Variables"; //"IO Identifier" "I/O identifier returned by the call" int "IO Identifier"; };; |
Async Write |
#457 // "description" "Asynch IO Write - Intel" "Asynch Write" { //"Time" "Timestamp" int "Timestamp"[]; //"Seconds" "Floating Point Timestamp double "Seconds"; //Event ID" "Corresponding event" // "800013" "iwrite" // "800015" "iwritev" int "Event Identifier"; //"Node" "Processor number" int "Processor number"; //"Duration" "Event duration in seconds" double "Duration"; //"File ID" "Unique file identifier" int "File ID"; //"Number Bytes" "Number of bytes to write" int "Number Bytes"; //"Number Variables" "Number of variables to write" int "Number Variables"; //"IO Identifier" "I/O identifier returned by the call" int "IO Identifier"; };; |
IO Wait
IO Wait |
#457 // "description" "IO Wait - Intel" "IO Wait" { //"Time" "Timestamp" int "Timestamp"[]; //"Seconds" "Floating Point Timestamp double "Seconds"; //Event ID" "Corresponding event" // "800017" "iowait" // "800019" "iodone" int "Event Identifier"; //"Node" "Processor number" int "Processor number"; //"Duration" "Event duration in seconds" double "Duration"; //"File ID" "Unique file identifier" int "File ID"; //"IO Identifier" "Value returned by previous asynch call" int "IO Identifier"; //"Return Value" "Corresponding event and interpretation" //"-1" "-iowait, -iodone: error occurred" //"0" "iowait; I/O finished; iodone, _iodone: I/O not finished" //"0-N" "iowait: bytes transferred (I/O finished)" //"1" "iodone, _iodone: I/O finished" int "Return Value"; };; |
Global Open |
#473 // "description" "IO Global Open - Intel" "Global Open" { //"Time" "Timestamp" int "Timestamp"[]; //"Seconds" "Floating Point Timestamp double "Seconds"; //Event ID" "Corresponding event" // "800021" "gopen" int "Event Identifier"; //"Node" "Processor number" int "Processor number"; //"Duration" "Event duration in seconds" double "Duration"; //"File ID" "Unique file identifier" int "File ID"; //"Flags" "Flags supplied at file open" int "Flags"; //"Mode" "Mode supplied at file open" int "Mode"; //"IO Mode" "Corresponding symbolic value" //"0" "M_UNIX" //"1" "M_LOG" //"2" "M_SYNC" //"3" "M_RECORD" //"4" "M_GLOBAL" int "IO Mode"; //"File Name" "Name of file supplied at file open" char "File Name"[]; };; |
IO Mode IO Mode |
#481 // "description" "IO Mode Manipulation - Intel" "IO Mode" { //"Time" "Timestamp" int "Timestamp"[]; //"Seconds" "Floating Point Timestamp double "Seconds"; //Event ID" "Corresponding event" // "800025" "setiomode" // "800023" "iomode" int "Event Identifier"; //"Node" "Processor number" int "Processor number"; //"Duration" "Event duration in seconds" double "Duration"; //"File ID" "Unique file identifier" int "File ID"; //"IO Mode" "Corresponding symbolic value" //"0" "M_UNIX" //"1" "M_LOG" //"2" "M_SYNC" //"3" "M_RECORD" //"4" "M_GLOBAL - Paragon only" //"-1" "Error occurred in call" int "IO Mode"; };; |
Lsize Lsize Lsize |
#489 // "description" "IO Lsize - Intel" "Lsize" { //"Time" "Timestamp" int "Timestamp"[]; //"Seconds" "Floating Point Timestamp double "Seconds"; //Event ID" "Corresponding event" // "800027" "lsize" int "Event Identifier"; //"Node" "Processor number" int "Processor number"; //"Duration" "Event duration in seconds" double "Duration"; //"File ID" "Unique file identifier" int "File ID"; //"Offset" "Number of bytes toresize from whence" int "Offset"; //"Whence" "Indicates file position where resize begins" //"0" "SIZE_SET" //"1" "SIZE_CUR" //"2" "SIZE_END" int "Whence"; //"Size" "New file size as returned by lsize() call" int "Size"; };; |