Advanced features for algorithmic skeleton programming
Mario Leyton · OpenGrey (Institut de l'Information Scientifique et Technique) · 2008
This thesis proposes a model for algorithmic skeleton programming. The model focuses on programming abstractions which offer minimal conceptual disruption for non-parallel programmers and showing the pay-back. The model aims towards a library implementation, and therefore focuses on problems and opportunities which arise by having skeletons as libraries instead of languages. In summary, this thesis presents a model for algorithmic skeleton programming and its implementation in Java: Calcium. Among others, Calcium features nestable task and data parallel skeletons, and supports the execution of skeleton applications on several parallel and distributed infrastructures. In other words, Calcium provides a single way of writing skeleton programs which can be deployed and executed on different parallel and distributed infrastructures. Calcium provides three main contributions to algorithmic skeleton programming. First, a performance tuning model which helps programmers identify code responsible for performance bugs. Second, a type system for nestable skeletons which is proven to guaranty subject reduction properties and is implemented using Java Generics. Third, a transparent algorithmic skeleton file access model which enables skeletons for data intensive applications.