Next: Tool Architecture Overview
Up: TAU: A Portable Parallel
Previous: An Observability and
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