thesis

Advanced features for algorithmic skeleton programming

Defense date:

Jan. 1, 2008

Edit

Institution:

Nice

Disciplines:

Authors:

Directors:

Abstract EN:

Cette thèse propose un modèle de programmation basé sur le concept de squelettes algorithmiques. Ce modèle se concentre sur les abstractions de programmation parallèle qui offrent une conception proche de celle des application non-parallèles permettant de simplifier leur développment. Ce modèle est destiné à être implémenté sous forme de librairie, et par conséquent se concentre sur les problèmes et les opportunités qu'offre cette approche plutôt qu'une approche orienté langage. En résumé, cette thèse présente un modèle de programmation basé sur les squelettes algorithmiques et son implémentation en Java, nommé Calcium. Calcium supporte entre autre l'utilisation de squelettes hiérarchiques, les squelettes exploitant le parallélisme de données ainsi que l'exécution de ces applications sur différentes infrastructures parallèles et distribuées. En d'autres termes, Calcium unifie la façon d'écrire les programmes basés sur les squelettes et permet le déploiement et l'exécution de ceux-ci sur différentes infrastructures parallèles et distribuées. Calcium apporte trois contributions principales dans le domaine de la programmation basé sur les squelettes. Premièrement, un modèle d'optimisation des performances qui permet aux programmeurs d'identifier les parties de codes responsables d'une dégradation des performances. Deuxièmement, un système de typage prouvé, pour squelettes hiérarchiques, qui garantie les propriétés de réduction et est implémenté a l'aide du typage générique de Java. Troisièmement, un modèle d'accès aux fichiers qui permet l'utilisation de squelettes dans les applications traitant des données de façon intense.

Abstract FR:

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.