** TAU **

Overview

TAU (Tuning and Analysis Utilities) is a visual programming and performance analysis environment for pC++. Elements of the TAU graphical interface represent objects of the pC++ programming paradigm: collections, classes, methods, and functions. These language-level objects appear in all TAU utilities. TAU uses the Sage++ toolkit as an interface to the pC++ compiler for instrumentation and accessing properties of program objects. TAU is also integrated with the pC++ runtime system for profiling and tracing support. TAU is implemented in C and C++ and is using Tcl/Tk for graphics.

The TAU 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 well-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.

We tried to make the TAU toolset as user-friendly as possible. Many elements of the graphical user interface are analogous to 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 TAU tools also support global features. If a global feature is invoked in any of the tools, it is automatically executed in all currently running TAU tools. Examples of global features include select-function, select-class, and switch-application. TAU also includes a full hypertext help system.


[FIGURE: TAU architecture]

The figure above shows the pC++ programming environment and the associated TAU tools architecture. The pC++ compiler frontend takes a user program and pC++ class library definitions (which provide predefined collection types) and parses them into an abstract syntax tree (AST). All access to the AST is done via the Sage++ library. Through command line switches, the user can choose to compile a program for profiling, tracing, and breakpoint debugging. In these cases, the instrumentor is invoked to do the necessary instrumentation in the AST. The pC++ backend transforms the AST into plain C++ with calls into the pC++ runtime system. This C++ source code is then compiled and linked by the C++ compiler on the target system. The compilation and execution of pC++ programs can be controlled by COSY. This tool provides a high-level graphical interface for setting compilation and execution parameters and selecting the parallel machine where a program will run.

The program and performance analysis environment is shown on the right side of the figure. It includes the integrated TAU tools, profiling and tracing support, and interfaces to stand-alone performance analysis tools developed partly by other groups. The TAU toolset provides support for accessing static information about the program and for querying and analyzing dynamic data obtained from program execution.


[NEXT] [UP] [PREV]
Next: Short TAU Tool Descriptions Up: TAU Home Page

mohr@cs.uoregon.edu
June 23, 1994