Next: Tool Architecture Overview Up: TAU: A Portable Parallel Previous: An Observability and

The pC++ Program Analysis Environment

In this section, we discuss (TAU, Tuning and Analysis Utilities), a first prototype for an integrated portable pC++ program and performance analysis environment. was designed to meet the requirements described in §1.

(R1)
A user (program-level) view. Elements of the graphical interface represent objects of the pC++ programming paradigm: collections, classes, methods, and functions. These language-level objects appear in all utilities.
(R2)
Support for high-level, parallel programming languages. is unique because it is defined by the program analysis requirements of pC++. Also, is designed and implemented in concert with the pC++ language system. The most difficult challenge to the development of is in determining what low-level performance (or debugging) instrumentation must be specified for capturing high-level execution abstractions, then translating performance data back to the application/language level.
(R3)
Integration with compilers and runtime systems. uses the Sage++ toolkit [1] as an interface to the pC++ compiler for instrumentation and accessing properties of program objects. is also integrated with the runtime system of pC++ for profiling and tracing support.
(R4)
Portability, extensibility, and retargetability. Because pC++ is intended to be portable, the tools have to be portable as well. We are using C++ and C to ensure an efficient, portable, and reusable implementation. The same reason led us to choose Tcl/Tk [7][6] for the graphical interface.

The tools are implemented as graphical hypertools. While they are distinct tools, they act in concert as if they were a single application. Each tool implements some defined tasks. If one tool needs a feature of another one, it sends a message to the other tool requesting it (e.g., display the source code for a specific function). This design allows easy extensions. The Sage++ toolkit also supports Fortran-based languages, allowing to be retargeted to other programming environments.

(R5)
Usability. We tried to make the toolset as user-friendly as possible. Many elements of the graphical user interface act like links in hypertext systems: clicking on them brings up windows which describe the element in more detail. This allows the user to explore properties of the application by simply interacting with elements of most interest. The tools also support global features. If a global feature is invoked in any of the tools, it is automatically executed in all currently running tools. Examples of global features include select-function, select-class, and switch-application. also includes a full hypertext help system.




Next: Tool Architecture Overview Up: TAU: A Portable Parallel Previous: An Observability and


mohr@cs.uoregon.edu
Mon May 23 10:02:30 PDT 1994