Thèse de doctorat en Informatique
Sous la direction de Daniel Etiemble.
Soutenue le 08-10-2015
à l'Université Paris-Saclay (ComUE) , dans le cadre de École doctorale Sciences et technologies de l'information et de la communication (Orsay, Essonne ; 2015-....) , en partenariat avec Laboratoire de recherche en informatique (Orsay, Essonne ; 1998-2020) (laboratoire) et de Université Paris-Sud (1970-2019) (établissement opérateur d'inscription) .
Le président du jury était Sylvain Conchon.
Le jury était composé de Daniel Etiemble, Sylvain Conchon, Joël Falcou, François Irigoin.
Les rapporteurs étaient Frédéric Loulergue, Stéphane Vialle.
Dans cette thèse, nous présentons des développements de l'approche utilisée dans l'équipe « ParSys » du LRI pour traduire automatiquement des codes scientifiques écrits dans un langage dédié inspiré de Matlab en codes de production haute performance. Pour garantir cette performance, nous mettons à profit d'une part la méta-programmation par templates C++ afin d'analyser chaque expression pour détecter les opportunités de parallélisme, et d'autre part la programmation parallèle asynchrone pour utiliser au mieux les ressources disponibles des machines multi-cœurs. Pour faire le lien entre ces deux étapes du processus de génération de code, des squelettes algorithmiques multi-niveaux sont implémentés. Nos outils ont été implantés dans la bibliothèque NT2 et évalués sur des applications scientifiques du monde réel.
Asynchronous algorithmic skeletons : application to domain specific languages
In this thesis, we present developments to the approach used by the LRI Parsys team to automatically translate MATLAB-like scientific codes into high performance production codes. To reach a high level of performance, we have combined C++ template meta-programming and asynchronous parallel programming to analyze each expression and detect parallelism opportunities first, and then to ensure near-optimal use of the available resources of multi-core machines. To link these two stages of the code generation process, we have implemented a solution based on multi-level algorithmic skeletons. We have implemented our tools in the NT2 library and evaluated them with several significant scientific benchmarks.
Il est disponible au sein de la bibliothèque de l'établissement de soutenance.