Dedicated object | Language primitive | Grammar extensions | |
---|---|---|---|
CC++ | . | . | par{}, parfor{}, spawn |
DC++ | Instance of DcThread | . | . |
DoPVM | . | initiate() | . |
Mercury | Instance of Thread | . | . |
Presto | Instance of Thread | . | . |
Features | |
---|---|
C** | Parallel member function defined by user |
Composites | Group functions |
Dome | Templates |
DPC++ | Parallel types |
Mentat | Data-flow approach |
pC++ | Parallel member function defined by user |
QPC++ | Broadcasting for a group |
Active Object Creation | Communication Between Active Objects | Granularity | |
---|---|---|---|
Arjuna | Stub mechanism | Member function call Synchronous(RPC) | A |
Avalon/C++ | Standard C++ | Member function call Synchronous | . |
Charm++ | new_chare() | Explicit message passing Asynchronous | A |
Concurrent C++ | create | Member function call Synchronous or asynchronous | . |
KAROS | Standard C++ | Member function call Asynchronous | . |
LITP-C++ | Standard C++ | Member function call Synchronous or asynchronous | . |
Open C++ | Standard C++ | Member function call Synchronous | A |
Panda | Standard C++ | Member function call Synchronous | B |
QPC++ | Standard C++ | Member function call Synchronous or asynchronous | B |
UC++ | activenew | Member function call Asynchronous | A |
µC++ | Standard C++ | Member function call Synchronous | B |
A means 1 active object is mapped on 1 Unix process
B means More than 1 active object can be mapped on a Unix process
and 1 or n lightweigth processes will be bounded to each active
objects.