MPC++:Massively Parallel, Message Passing, Meta-level Processing C++
The MPC++ is an extension of C++ for parallel/distributed
programming. Instead of setting several language extensions, we are
trying to design an extendable/modifiable programming language system
for C++ with low-level parallel description primitives. Higher
parallel/distributed constructs, such as data parallel statements and
distributed active objects, are implemented using the extendable
feature.
To implement this approach, we designed a metalevel architecture for
C++. The MPC++ metalevel architecture defines an abstract compiler
described in C++ and its modification facility called MPC++ metaobject
protocol. Programmers can easily introduce new syntax notation and
redefine default code generation using the MPC++ metaobject protocol.
Using this capability, we will develop new parallel/distributed
constructs with optimizer and make the system portable. These
programs will constitute the metalevel object libraries (MOLs). A
user can select or modify a MOL to suit the situation.
The parallel description primitives are designed to form a system
programming language on the RWC-1 massively parallel machine that
supports multi-threads and message driven execution.
These primitives are i) a "function instance" which is an abstraction
of thread invocation by message passing and ii) "message entry" and
"token" which are abstractions of communication among threads.
We have been developing the MPC++ system for RWC-1. We are now
porting the system to a Sun workstation cluster connected with a fast
network system called myrinet. We will also present a preliminary
evaluation on the workstation cluster.
- Meta-Level Architecture
- Control Parallel Computation
- Data Parallel Computation
- Work Station Cluster Implementation
- Old Documentations
- Related Documentations