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