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.