Parallel Combinators for the Encore Programming Language
With the advent of the many-core architecture era, it will become increasingly important for programmers to utilize all of the computational power provided by the hardware in order to improve the performance of their programs. Traditionally, programmers had to rely on low- level, and possibly error-prone, constructs to ensure that parallel computations would be as efficient as possible. Since the parallel programming paradigm is still a maturing discipline, researchers have the opportunity to explore innovative solutions to build tools and languages that can easily exploit the computational cores in many-core architectures. Encore is an object-oriented programming language oriented to many-core computing and developed as part of the EU FP7 UpScale project. The inclusion of parallel combinators, a powerful high-level abstraction that provides implicit parallelism, into Encore would further help programmers parallelize their computations while minimizing errors. This thesis presents the theoretical framework that was built to provide Encore with parallel combinators, and includes the formalization of the core language and the implicit parallel tasks, as well as a proof of the soundness of this language extension and multiple suggestions to extend the core language. The work presented in this document shows that parallel combinators can be expressed in a simple, yet powerful, core language. Although this work is theoretical in nature, it is a useful starting point for the implementation of parallel combinators not only in Encore, but also in any language that has features similar to this language.
AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)