HPC++ Technical Overview
The HPC++ design specification consists of a set of class libraries and
tools, that do not require any extensions to the C++ language. It also
consists of a set of run-time systems that are required for remote access.
The HPC++ specification is implemented in the form of a library called
HPC++Lib. We note at the outset that HPC++Lib is not unique and the
key ideas are drawn from many sources. In particular, many of the ideas
originate with K. Mani Chandy and Carl Kesselman in the CC++ language, and
the MPC++ Multiple Threads Template Library designed by Yutaka Ishikawa of
RWCP, the IBM ABC++ library, the Object Management Group's CORBA
specification and the Java concurrency model.
The key features of HPC++Lib are
What follows is a detailed technical overview of the various features
supported by HPC++, including its run-time and execution models, various
run-time systems it supports (and associated issues of performance, security
etc.), the HPC++ stub compiler, and the current status of HPC++-lib. It also
includes some code samples. Please refer to the HPC++ Reference Manual for more detailed
information about HPC++'s API including its public classes and templates.
- A Java style thread class that provides an easy way to program
parallel applications on shared memory architectures.
- A class and template library to support synchronization, collective
parallel operations such as reduction, and remote memory
references. It also includes PSTL, a parallel implementation of the
standard template library1.
- A CORBA style IDL-to-proxy generator used to support member function
calls on objects located in remote address spaces1.
- A set of run-time systems used to support all kinds of operations
involving remote communication. Such operations include reductions,
barrier synchronization, remote method call etc.
The HPC++ Programming and Execution
HPC++ Application Programming Interface (API)
Parallel Standard Template
Library (PSTL) 1
Miscellaneous Interfaces Related to
Multiple Contexts and SPMD Computation
Remote Context Creation
Attaching to Remote
SPMD Contexts from Command-line
HPC++ Stub Compiler 1
HPC++ Exception Model
Interoperability with other
HPC++ and Java
1: These are not available in the current version of HPC++, but will
be added soon.
Last modified: Wed Apr 21 19:41:59 EST 1999