The European Community’s Esprit programme-funded Europa Working Group on Parallel C++ will deliver the first draft of what it calls a proxy model for object-oriented parallel C++ at its plenary meeting in Brussels on November 8. The aim of the working group, which includes among its roll call ICL Plc, Convex Computer Corp, Digital Equipment Corp, Tandem Computer Inc, Compagnie des Machines Bull SA and academic institutions including the French National Institute of Research for Computer Science and Control, INRIA, and University College London, is to provide a framework for the design of parallel C++ programming systems, so that there is standard functionality across different parallel C++ environments. The work will add parallel extensions to the sequential C++ programming framework, by establishing a standard approach to the increasing use of the language for parallel and distributed applications. The idea is for hardware and software vendors to use the framework as a model for their own implementations, Europa said. Taking as its starting point parallel C++ research worldwide, including work on UC++ at University College London, CC++ – Concurrent C++ at CalTech, Charm++ at the University of Illinois, and Eiffel at INRIA, Europa will build a proxy model where any C++ object can be represented by a proxy object, with that object extended to several systems.
Active members
The work has been under way for some nine months, according to Alaister McEwan, a researcher with the project, but further technology, which the group intends to consider, includes communications, bindings, mappings to hardware and parallel input-output. Completion of the work is still two years down the line, he said. Consisting of three Special Interest Groups – architecture, applications and implementation – Europa is currently defining the procedure of language for parallel architecture. An architecture definition will follow on from a three-stage process via a draft – deliverable in Brussels – which will be submitted to the applications and implementation groups. These groups will refine and implement the work of the architecture group. Active memers in the architecture group include ICL, which has been working on the UC++ language along with the University College. The company wants to develop applications for its parallel machines, including the DRS 6000 and Goldrush multiprocessors. The UC++ project is typical of the work under way, McEwan said. It provides two principal features to parallel C++: active objects, which encapsulate processes and asynchronous function calls (or message passing), enabling active objects to be called without the call being blocked. The unit of parallelism in UC++ is the active object. Any class instance can be made active, which means it exists as a separate process. A parallel program is, therefore, a collection of active communicating objects, whose communication takes place by calling the public member functions. This style of parallelism is derived from the standard object-oriented model, which fits in well with C++, and provides what is called coarse grain, or object-level, parallelism. Using class libraries combined with minor syntactic extensions to C++ and a translator from UC++ to C++ has proved to be the most flexible approach, the group declared.