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.
  • The HPC++ Programming and Execution Model
  • HPC++ Application Programming Interface (API)
  • Class Libraries
  • Threads
  • Global Pointers
  • Synchronization
  • Parallel Standard Template Library (PSTL) 1
  • Miscellaneous Interfaces Related to Multiple Contexts and SPMD Computation
  • Remote Context Creation
  • Attaching to Remote Contexts
  • Starting Multiple SPMD Contexts from Command-line
  • HPC++ Stub Compiler 1
  • Run-time Systems
  • Nexus
  • Globus
  • Tulip
  • HPC++ Exception Model
  • 1
  • Interoperability with other systems
  • HPC++ and Java Interoperability
  • 1: These are not available in the current version of HPC++, but will be added soon.
    [ IU CS ] [ Extreme! Computing ] [ HPC++ ] [ HPC++ Docs]
    hpc++@extreme.indiana.edu

    Last modified: Wed Apr 21 19:41:59 EST 1999