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
TAU also includes a full hypertext help system.
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.