Multi-Architectural Support : A Generic and Generative Approach / Pierre Estérie ; sous la direction de Brigitte Rozoy

Date :

Type : Livre / Book

Type : Thèse / Thesis

Langue / Language : anglais / English

C plus-plus (langage de programmation)

Programmation générique

Programmation parallèle (informatique)

Architecture -- Informatique

Rozoy, Brigitte (1948-....) (Directeur de thèse / thesis advisor)

Conchon, Sylvain (1972-....) (Président du jury de soutenance / praeses)

Rauchwerger, Lawrence (Rapporteur de la thèse / thesis reporter)

Clauss, Philippe (19..-.... ; chercheur en informatique) (Rapporteur de la thèse / thesis reporter)

Falcou, Joël (1980-....) (Membre du jury / opponent)

Jubertie, Sylvain (1978-....) (Membre du jury / opponent)

Université Paris-Sud (1970-2019) (Organisme de soutenance / degree-grantor)

Ecole doctorale Informatique de Paris-Sud (2000-2015) (Ecole doctorale associée à la thèse / doctoral school)

Laboratoire de recherche en informatique (Orsay, Essonne ; 1998-2020) (Laboratoire associé à la thèse / thesis associated laboratory)

Résumé / Abstract : Le besoin constant de puissance de calcul a poussé les développeurs à concevoir de nouvelles architectures: les architectures parallèles. Le calcul scientifique dépend fortement des performances de ces dernières afin de fournir des résultats dans un temps optimal. Les applications scientifiques exécutées sur de tels systèmes doivent alors tirer partie des spécificités de ces nouvelles architectures pour être efficaces.Cette thèse présente une nouvelle approche pour la conception de logiciels embarquant des optimisations relatives aux architectures : l'approche AADEMRAL (Architecture Aware DEMRAL). Cette méthodologie a pour but de simplifier le développement de bibliothèques de calcul parallèle avec un support multi-Architectural grâce à une approche générique et générative.Cette nouvelle méthodologie est ensuite intégrée dans trois bibliothèques. La première d'entre elles, Boost.Dispatch, permet de concevoir des logiciels basés sur l'approche AADEMRAL. Boost.Dispatch est une bibliothèque C++fournissant une interface générique pour réaliser de la surcharge de fonction avisée de l'architecture sous-Jacente. Ensuite nous présentons deux bibliothèques C++ implémentées en tant que langages orientés domaine : Boost.SIMD et NT2. Leurs conceptions mettent en œuvre la méthodologie AADEMRAL et leurs implémentations sont basées sur Boost.Dispatch. Boost.SIMD propose une interface de haut niveau pour la programmation des unités vectorielles.NT2 se base sur une interface similaire à celle de Matlab et fournie un support pour les systèmes multi-Cœurs et les unités vectorielles. Enfin, nous validons les performances de ces deux outils ainsi que la robustesse de notre nouvelle approche en présentant une série de résultats obtenus sur des applications de référence.

Résumé / Abstract : The constant increasing need for computing power has pushed the development of parallel architectures. Scientific computing relies on the performance of such architectures to produce scientific results. Programming efficient applications that takes advantage of these computing systems remains a non trivial task. In this thesis, we present a new methodology to design architecture aware software: the AA-DEMRAL methodology. This methodology aims at simplifying the development of parallel programming tools with multi-Architectural support through a generic and generative approach. We then present three high level programming tools that rely on this approach. First, we introduce the Boost.Dispatch library that provides a way to develop software based on the AA-DEMRAL methodology. The Boost.Dispatch library is a C++ generic framework for architecture aware function dispatching. Then, we present two C++ template libraries implemented as Architecture Aware DSELs which assess the AA-DEMRAL methodology through the use of Boost.Dispatch: Boost.SIMD, that provides a high level API for SIMD extensions and NT2 , which propose a Matlab like interface with support for multi-Core and SIMD based systems. We assess the performance of these libraries and the validity of our new methodology through benchmarks.