TIMEWINDOWIOSTATS(1) NAME TimeWindowIOstats - Produce report from I/O Time Window Summary trace records SYNOPSIS TimeWindowIOstats tracefile DESCRIPTION TimeWindowIOstats generates a temporal summary report of I/O activity from Open, Global Open, and Time Window Sum- mary trace records in the input SDDF file. The necessary trace event records are produced by the I/O extension to the Pablo trace library when the Time Window Summary option is enabled. As TimeWindowIOstats is running, it periodically displays the number of input trace packets (records) processed to standard error. The report output is directed to standard out and is 120 characters wide. Several paragraphs of text describing the report contents are included after the actual I/O summary information. The descriptive text is included in a slightly modified form in the section "THE REPORT" below. If the input file does not include any Open, Global Open, or Time Window Summary Trace records, the report will be generated without error, but will contain only headings. If the input file includes Open and/or Global Open records but no Time Window Summary records, the report will be generated but will contain only information on when files were opened. For the report to work as intended, there must be Time Window Summary records in the input trace file. BEFORE RUNNING THE PROGRAM The application to be studied must be instrumented with the I/O extension to the Pablo trace library and call the function enableTimeWindowSummaries() to generate the trace records needed as input for this program. The instru- mented application is run and one or more trace files are generated - the number of trace files depends on the num- ber of processors used to run the application. If there are multiple trace files, they should be merged with the MergePabloTraces(1) program to produce a single trace file for the execution including information from all processors. The program SyncIOfileIDs(1) should be run on the single trace file to synchronize IDs for files that were opened more than once by the application. The file generated by SyncIOfileIDs ending in ".syncFiles" can be used as input to TimeWindowIOstats. It is possible to run TimeWindowIOstats and produce a report summarizing I/O activity by Time Window on an SDDF input file that contains Time Window Summary records but which has not been merged and synchronized. If the appli- cation's trace files are not merged and synchronized as outlined above, the generated report must be interpreted accordingly. If the input trace file uses the same fileID for multiple file names, an error message is generated and the program exits without finishing the report. THE REPORT The report generated by TimeWindowIOstats provides a tem- poral summary of the I/O activity in individual files accessed by processor(s) executing a traced program. The execution time of the program is divided into "time win- dows" whose size is set by the programmer in the initial call to enableTimeWindowSummaries(). The time window size may be adjusted by subsequent calls to setTimeWindow- Size(). I/O requests for each file on each processor are summarized for each time window. In addition, summaries are produced when files are closed and when the programmer calls outputTimeWindowSummaries(). Details on the I/O summary information included in the report follow: A line, "Seconds in Time Window", gives the number of sec- onds in a time window as specified by the programmer in the application. The actual seconds included in summary records is affected by opens, closes, and calls to output- TimeWindowSummaries() in addition to the specified time window size. The first time window begins when time sum- maries are initialized and subsequent windows begin when summaries are produced for all open files. The trace library checks to see if execution time has entered a new time window whenever a traced I/O operation occurs. Report lines with the Event Cause "Open" correspond to file opens, including global opens for applications run- ning on the Intel Paragon. All other report lines print summary statistics for a given file (indicated by File ID) on a given processor (indicated by PE Nmbr) since the last report line for that file/processor combination. An Event Cause column reports what triggered the summary: "Close" indicates the file was closed; "Force" indicates output- TimeWindowSummaries() was called; "Time" indicates the execution entered a new time window. Count, Bytes, and Time columns show the event count, bytes involved, and seconds taken for read, seek, and write requests. Reads, seeks, and writes are considered I/O access events. Asynchronous reads and writes (on the Intel iPSC/860 and Paragon systems) are included in the read and write columns, with the reported seconds corre- sponding to the duration of the asynchronous call, not to the time required for the completion of the requested data transfer. First and Last Byte columns report the first and last bytes accessed since the file was opened or the last sum- mary was generated. These will be -1 if no I/O accesses occurred. The Active Seconds column reports the seconds between the first and last I/O access. This will be 0 if fewer than two I/O accesses occurred. The Timestamp column gives (in seconds) the time the open or summary occurred relative to when tracing was enabled for the application. KNOWN PROBLEMS The report is not graceful in its handling of different time window sizes on different processors of the same application run. The individual summary lines of the report will be correct, but the "Seconds in Time Window" lines will not reflect the processor(s) to which the reported time window size applies. For files accessed in a global mode, the "Seek Bytes", "First Byte", and "Last Byte" values will often be incor- rect. In particular, on Intel iPSC/860 and Paragon sys- tems, these three values should not be trusted for files accessed with an iomode of M_LOG, M_SYNC, M_RECORD, or M_GLOBAL. The I/O extension to the Pablo instrumentation library attempts to minimize the overhead incurred in gathering file pointer information and does not track file pointer positioning correctly when the activity on one processor affects the file pointer position on another processor. An attempt will be made to address this prob- lem in the next release. SEE ALSO FileRegionIOstats(1), IOstats(1), IOstatsTable(1), IOtotalsByPE(1), LifetimeIOstats(1), MergePabloTraces(1), SyncIOfileIDs(1) Ruth A. Aydt, A User's Guide to Pablo I/O Instrumentation Ruth A. Aydt, The Pablo Self-Defining Data Format COPYRIGHT Copyright 1994-1996, The University of Illinois Board of Trustees. AUTHOR Ruth A. Aydt, University of Illinois Pablo Environment October 17, 1996