The trend towards using high-level parallel language systems to program scalable parallel computers must be accompanied by advances in the tools and environments for program analysis and tuning. The language system concerns are achieving programmability through parallel programming abstractions, portability through retargetable runtime systems, and scalability and performance through restructuring and optimizing compiler tools. These concerns lead to a new set of requirements for program analysis support: analysis based on language/program semantics, portable measurement and analysis infrastructure, and compiler-integrated analysis. These requirements are difficult to address using general-purpose parallel tools because of the tight logical coupling that is necessary between the language model and program analysis functionality. Moreover, for evaluating the usability and programmer productivity issues associated with parallel program analysis tools it is important to have an application- or language-specific context.
(TAU, Tuning and Analysis Utilities) is a parallel program analysis environment that we have designed and developed for the parallel object-oriented language system pC++. In this paper, we describe the design and show how programming productivity requirements for pC++ are addressed in its implementation. It is not our goal to propose as a general purpose solution to parallel program analysis. Rather, our goal is to demonstrate the potential benefits of a new development strategy for program analysis tools, one that promotes meeting specific language analysis requirements over providing general purpose functionality.
The program analysis environment is described in §2. The pC++ language is reviewed to establish 's design requirements, then the architecture is presented. Some of the static and dynamic analysis tools have been covered in detail elsewhere (see [10][9]). Instead of reiterating that discussion (a brief description is given in §2.1 and §2.2), we focus on the latest tool for breakpoint-based program analysis in §3. Future directions are discussed in §4.