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.