Skip to Main Content
As applications scale to ever increasing numbers of processors, there is a growing awareness that high-end performance evaluation and tuning requires holistic program analysis. In addition to CPU performance characterization, observation of memory, network, and input/output (I/O) performance can help to understand how all these factors contribute to the overall performance observed. As our performance observation requirements evolve, our performance observation tools and techniques need to keep pace with the new challenges and evolve to answer the key performance questions that developers request. One such question was to provide tools to evaluate and observe I/O in a given code region or phase. This paper describes our experience in extending the modular and extensible tuning and analysis utilities (TAU) performance systemreg to incorporate direct source-level code instrumentation for tracking static and dynamic phases in C, C++, and FORTRAN. We describe the design and implementation of a new wrapper interposition library to track POSIX I/O calls to determine the extent, source, and volume of I/O performed. By coupling these two components, we can now answer questions that correlate application phase performance with I/O performance. We report on results and experiences in applying these new phase and I/O observation capabilities in TAU to the CFDShip-IOWA and STRIPE applications. The information contained in this paper was obtained from open sources.