next up previous
Next: TAU Up: Performance and Memory Evaluation Previous: Introduction


Instrumentation

Parallel performance evaluation tools typically employ either profiling or tracing modes of measurement. While profiling records aggregate performance metrics during program execution, tracing relies on timestamped event logs to re-create the temporal variation in performance, showing program events along a global timeline. Instrumentation calls are inserted in the program to activate events that characterize actions that occur in a program. Sampling and measured profiling are two common techniques to activate the instrumentation. Sampling incurs a fixed measurement overhead and relies on a periodic interrupt from the operating system based on an interval timer or hardware performance counters. When an interrupt takes place, the program state is recorded and at the end of execution, the tool estimates the contribution of different routines and statements based on the samples collected. Tools such as SGI's Open SpeedShop[27] and gprof [11,10] fall into this category. Tools based on measured instrumentation, on the other hand, insert hooks at specific locations in the program, such as routines and loops. At the entry and exit points of these program entities instrumentation is activated and measurements are performed.



Subsections

Scott Biersdorff 2006-05-05