An application typically goes through several phases in its execution. To
track the performance of the application based on phases, TAU provides
static and dynamic phase profiling. A profile based on phases highlights
the context in which a routine is called. An application has a default
phase within which other routines and phases are invoked. A phase based
profile shows the time spent in a routine when it was in a given phase. So,
if a set of instrumented routines are called directly or indirectly by a
phase, we'd see the time spent in each of those routines under the given
phase. Since phases may be nested, a routine may belong to only one
phase. When more than one phase is active for a given routine, the closest
ancestor phase of a routine along its callstack is its phase for that
invocation. The performance data generated can answer questions
such as: what is the total time spent in MPI_Send() when it was invoked in all invocations of the IO (IO => MPI_Send()) phase?
Sameer Shende
2005-05-30