Next: Static Analysis Tools Up: The pC++ Program Previous: The pC++ Program

Tool Architecture Overview

Figure 1 shows an overview of the pC++ programming environment. The pC++ compiler frontend takes a user program and pC++ class library definitions (providing 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 or tracing. In both cases, the instrumentor is invoked to do the necessary instrumentation in the AST (see Section 5.1 for details). 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 (COmpile manager Status displaY). This tool provides a user-friendly and convenient way of compiling and linking pC++ programs (see Figure 2). Through a graphical interface, the user can first select the parallel machine on which the given application is to be compiled and run. Parameters and options for the compilation process (e.g., compile for tracing) and for the program run (e.g., activated event classes for trace recording) can be chosen through pull-down menus. Cosy automatically connects, if necessary, to the remote machine, executes the appropriate commands, and displays the resulting output in a scrollable window.

Fig. 1 Tools architecture

The program and performance analysis environment is shown on the right side. They include the TAU tools, profiling and tracing support, and interfaces to performance analysis tools developed by other groups [10][5][2]. In the following, the static and dynamic tools are described in more detail.



Next: Static Analysis Tools Up: The pC++ Program Previous: The pC++ Program


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