Next: Instrumentation Optimization
Previous: Binary Instrumentation
TAU also supports instrumentation at the Python interpreter level and Java Virtual machine-based runtime instrumentation. Also, TAU's component [13,15] interface for the Common Component Architecture (CCA) permits us to create proxy components that are placed between caller and callee ports. The port proxies are created using PDT to parse the source code. All these approaches load the TAU shared object in the context of the executing application for instrumentation.
As the source code undergoes a series of transformations in the compilation process, it poses several constraints and unique opportunities for program instrumentation. Instead of restricting the choice of instrumentation to one layer, TAU permits multiple instrumentation interfaces to be deployed concurrently for better coverage. It taps into performance data from multiple levels and presents it in a consistent and a uniform manner.