Supporting Patterns/Skeletons in a Common Object Oriented Language:
This project is concerned with parallel programming using design patterns. A design pattern describes a recurring parallel programming problem and a reusable solution to that problem. A design pattern is implemented as a reusable code skeleton for quick and reliable development of parallel applications. The challenge here is to find a model that satisfies following requirements: First, it is important that design patterns can be defined and added to the system's library in an incremental manner without requiring any major modification of the system (Extensibility). Second, customization of a parallel application should be allowed by mixing design patterns with low level parallel code resulting in a flexible and efficient parallel programming tool (Flexibility). Finally, it should be possible to implement such patterns in a common language like C++ or Java without necessarily relying on language extensions or GUIs (i.e., preprocessing stages).