Forschungsthemen
[] A Well-formed Fragment Component Library for Parallel Architectural Skeletons in the Context of GPGPU Programming
Design and implementation of applications and algorithms for heterogeneous multi core systems like in GPGPU computing is an elaborate task. A nearly optimal distribution of data and tasks between an n-core CPU and an m-core GPU is a non-trivial problem. Depending on the size of the dataset, the actual computational problem, the number of cores and available memory, different scenarios require different variants of the same program. For example, due to the computational overhead of data distribution (fork and joins) and inter process synchronization, an algorithm might run quite efficient on a single core for a small dataset while for a large dataset, the parallelization overhead might be acceptable in comparison to the achieved speed-up. Parallel architectural skeletons are an approach for describing parallel program variants. Code templates help to separate algorithmic parts of a program from data distribution and synchronization operations and allow the automatic generation of multiple program variants suitable for multiple system architectures and scenarios. Well-formed invasive software composition (ISC) is an approach for implementing template engines with static semantics well-formedness guarantees. While a prototype for MapReduce for Java showed that well-formed ISC is a valuable approach for implementing parallel architectural skeletons, one objective of this thesis is to extend this approach and develop a basic fragment component (template-) library for well-formed ISC. Furthermore, this thesis investigates existing approaches and (template-) libraries for architectural skeletons and similar approaches and gives an overview of these systems. Further, it investigates such skeletons in context of heterogeneous systems like GPUGPU programming systems. An example for such a system is in the PHEPPHER project. In detail the thesis comprises the following tasks
- Familiarizing with well-formed ISC
- Familiarizing with architectural skeletons/ parallel code templates
- Familiarizing with GPGPU programming in Java (e.g. Rootbeer)
- Creating a literature overview
- Investigation of the existing MapReduce prototype and extension to GPGPU programming
- Development of an approach for fragment component library for parallel architectural skeletons for ISC
- Prototypical implementation of the developed concepts (including an appropriate testing concept)
Betreuer: Sven Karol