Table of Contents
TAU provides three methods to track the performance of your application. Library interposition using tau_exec, compiler directives or source transformation using PDT. 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 |
---|---|---|---|---|---|---|---|---|
Interposition | Yes | Yes | ||||||
Compiler | Yes | Yes | Yes | Yes | Yes | |||
Source | Yes | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Dynamic instrumentation is achieved through library pre-loading. The
libraries chosen for pre-loading determine the scope of instrumentation.
Some options include tracking MPI, io, memory, cuda, opencl library
calls. MPI instrumentation is included by default the others are enabled by command-line options to
tau_exec
. More info at the tau_exec
manual page. Dynamic
instrumentation can be used on both uninstrumented binaries and binaries
instrumented via one of the methods below, in this way different layers of
instrumentation can be combined.
To use tau_exec
place this command before the
application executable when running the application. In this example IO
instrumentation is requested.
%> tau_exec -io ./a.out %> mpirun -np 4 tau_exec -io ./a.out