Table of Contents
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 | 
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