Previous: Runtime Instrumentation for Python,
TAU differs from other tools that provide automatic instrumentation capabilities in the way it addresses the issue of instrumentation optimization. To improve accuracy of performance measurements, instrumentation of low-level lightweight routines that are invoked frequently must be disabled. When the user defines an environment variable TAU_THROTTLE to control instrumentation overhead, it throttles and disables instrumentation in routines that are called over 100000 times and take less than 10 microseconds per call. These default values may be modified by the user by setting other environment variables (TAU_THROTTLE_NUMCALLS and TAU_THROTTLE_PERCALL respectively). This feature can reduce profiling overhead significantly. When tracing is chosen, it reduces the volume of trace data generated. Other forms of instrumentation optimization include the use of the tau_reduce tool [14,4] that generates a selective instrumentation file from a profile dataset. This file contains a list of routines that should be excluded from instrumentation. The source instrumentor uses it to re-instrument the program. Other approaches include removing instrumentation overhead from the performance data by measuring the timer overhead during the measurement phase [6,7,8].