Dynamic program analysis tools allow the user to explore and analyze program execution behavior. This can be done in two 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 behavior as a sequence of abstract events that can be used to determine various properties of time-based behavior.
The most critical factor for the user is to relate the measurement results back to the source code. helps in presenting the results in terms of pC++ language objects and in supporting global features that allows the user to locate the corresponding routine in the callgraph or source text by simply clicking on the related measurement result objects. Before presenting the dynamic analysis tools racy and easy, we briefly describe the approach used to implement profiling and tracing in pC++ (see  for more details).