This dissertation contains a study of the current parallel programming world and the modern multi-core hardware models. We argue that distributed memory archi- tectures are the architectures of the future. As our central research topic, we make a case study of the new revolutionary hardware architecture, the Cell Broadband Engine Architecture (CBEA). One of the main problems with modern distributed memory architectures like the CBEA is the fact that current programming models for that type of architecture are extremely low-level and intimately tied to a specific hardware platform. In this dissertation, we are trying to unify earlier research in parallel programming with this modern architecture. We propose a language that tries to abstract the low level details of the CBEA and exploits its three-level mem- ory architecture to allow the programmer to successfully anticipate memory needs in order to hide memory latency. We introduce a novel language, CellScheme. CellScheme is an extension of Scheme that uses futures to introduce support for fork-join parallelism in its language. From a number of benchmarks, including an implementation of a matrix-multiplication algorithm, we evaluate our approach. In short, the contributions of this dissertation are threefold. Firstly, we present a com- prehensive overview of the CBEA and its current toolchain. Secondly, we develop Cellscheme, a first implementation of Scheme for the CBEA, extended with the notion of futures for expressing high-level fork-join parallelism. Thirdly, we present an empirical evaluation of CellScheme, based on an implementation of a matrix multiplication algorithm.
|Date of Award||3 Sep 2009|
|Supervisor||Theo D'Hondt (Promotor), Tom Van Cutsem (Advisor) & Charlotte Herzeel (Advisor)|
- fork-join parallelism