Dynamic program analysis tools allow the user to explore and analyze
program execution behavior.
This can be done in three general ways.
Profiling computes statistical information to summarize
program behavior, allowing the user to find and focus quickly on the main
bottlenecks of the parallel application.
Tracing portrays the execution as a sequence of
abstract events that can be used to determine various properties
of time-based behavior.
Breakpoint debugging allows a user to stop the program at selected
points and query the contents of program state.
For all analysis modes, the most critical factor for the user is how
the high-level program semantics are related to the measurement results.
helps in presenting the results in terms of pC++ language
objects and in supporting global features that allow the user to locate
the corresponding routine in the callgraph or source text by simply clicking
on the related measurement result or state objects.
's dynamic tools currently include an execution profile data browser called
racy (Routine and data ACcess profile displaY),
an event trace browser called
easy (Event And State displaY),
and a breakpoint debugger called breezy.
To generate the dynamic execution data for these tools,
profiling and tracing instrumentation and measurement support has been
implemented in pC++.
In Figure 2 we show how the tools are used in combination
on the Poisson code of the pC++ benchmark suite. After compiling and
executing the benchmark using 16 nodes on our Sequent Symmetry with cosy,
the individual tools were launched using the
main control panel. Then
the global feature select-class called from the breezy main
control panel (see Figure 4) was used to show the
vector class declaration in the file viewer window of fancy
(lower right corner), its members in the member table window of classy
(upper right corner), and data access statistics from racy (lower
left corner). Racy uses colored bars and two columns of numbers to show
the percentage of local and remote accesses to this collection.