Chapter 1. Tau Instrumentation

TAU provides three methods to track the performance of your application. Either binary rewriting through Dyninst, through compiler directives or by using PDT to do source transformation. Most projects need a comprehensive picture of where time is spent. The TAU Compiler provides a simple way to automatically instrument an entire project. The TAU Compiler can be used on C, C++, fixed form Fortran, and free form Fortran. Here is a table that lists the features/requirement for each method:

Table 1.1. Different methods of instrumenting applications

Method Requires recompiling Requires PDT Shows MPI events Routine-level event Low level events (loops, phases, etc...) Throttling to reduce overhead Ability to exclude file from instrumentation Ability to exclude other regions of code
Binary rewriting     Yes     Yes Yes  
Compiler Yes   Yes Yes   Yes Yes  
Source Yes Yes Yes Yes Yes Yes Yes Yes

1.1. Dyninst binary rewriting of applications

This section will cover how to profile your application by rewriting your binary to inserted instrumentation.

The tau_run script allows you to instrument an application binary using the Dyninst Tool (requires TAU to be configured with Dyninst). This feature allow instrumentation of already compiled executables without TAU's having to edit the application's code.

To use tau_run select the -o option to name the rewritten binary:

%> tau_run -o a.inst a.out
%> mpirun -np 4 ./a.inst