In a typical UC++ program only a small number of objects will be active, providing the parallel structure of the program. The majority of objects will be standard passive objects, existing as members of active objects or in data structures managed by active objects. From this it can be seen that UC++ supports coarse to medium scale parallelism.
Communication between active objects is via the use of member function calls. UC++ supports both synchronous and asynchronous member function call between active objects. A synchronous call behaves in the same way as a standard C++ member function call, in that the caller is suspended until the called member function terminates. With an asynchronous call, the caller does not wait for the result of a function call to be returned and may continue processing. Asynchronous member function calls provide the mechanism for initiating parallelism in a UC++ program.
The version of UC++ described in the following sections provides a parallel version of C++ achieved by making a minimal number of extensions to C++, consistent with the aims and goals.
1.2 Aims and Goals
The broad aims of UC++ can be summarised as follows:
During the design of UC++ the aim of maintaining as much compatibility with C++ as possible has been a central issue. In particular, it was believed to be important to avoid creating a variant of C++ that had major syntactic differences and would require large amounts of existing C++ code to be re-written. The object-oriented approach to parallelism is particularly significant in this regard, as a well written object based C++ program is likely to maintain much of its structure when parallelised.
UC++ - 02 MAY 95
[Contents] [Top] [Next] [Previous]
Generated with CERN WebMaker