Overview of pC++/Sage++

(version 1.7 / Sep 9 1994)


pC++ is a portable parallel C++ for high performance computers. pC++ is a language extention to C++ that permits data-parallel style opertations using "collections of objects" from some base "element" class. Member functions from this element class can be applied to the entire collection in parallel. This allows programmers to compose distributed data structures with parallel execution semantics. These distributed structures can be aligned and distributed over the memory hierarchy of the parallel machine much like HPF. pC++ also include a mechanism for encapsulating SPMD style computation in a thread-based computing model.

pC++ code is extremely portable. Just like Cfront translates C++ code into standard ANSI C that can be passed to the native C compiler, the pC++ preprocessor (written using Sage++) translates pC++ into C++, which is then compiled on the target architecture. Currently, pC++ has run-time systems for the following parallel machines:

Furthermore, code can be developed and tested on the following "uniprocessor" workstations: pC++ comes with a prototype version of the TAU tools (Tuning and Analysis Utilities), a visual programming and performance analysis environment for pC++. It is based on Sage++. The following four tools are available: There is also tau, the TAU tools main control tool. It allows you to start the other tools, provides on-line, hyper-text help and some global functionality like loading another .dep file (the internal program tree form for pC++ programs).

There is also an experimental prototype of breeze, the barrier breakpoint debugger for pC++. Use with care. Application Notes:

1. Yes, you can call Fortran from pC++... even Thinking Machines "node" subset of CMF.

2. pC++ 1.x does not support the type of task parallelism you would need to do a distributed OS. It is intended for data-parallel problems only. In the future, there will be more support for task parallelism by providing ways in which pC++ will work with other object oriented systems. Watch this space for version 2.0.


Sage++ is an object-oriented compiler preprocessor toolkit. Using Sage++ to transform source code is a three step process:
Currently, the pC++/Sage++ system includes about 212K lines of code. For more information about pC++/Sage++, including the user's guides, view the On-line Documentation or the Program Files from the Main Menu.

[ IU CS ] [ Extreme! Computing ] [ pC++/Sage ]

Last updated: Tue Jan 26 18:06:10 1999