Thèse soutenue

Un environnement parallèle de développement haut niveau pour les accélérateurs graphiques : mise en œuvre à l’aide d’OPENMP
FR  |  
EN
Accès à la thèse
Auteur / Autrice : Gabriel Noaje
Direction : Michaël Krajecki
Type : Thèse de doctorat
Discipline(s) : Sciences - STS
Date : Soutenance le 07/03/2013
Etablissement(s) : Reims
Ecole(s) doctorale(s) : Ecole doctorale Sciences, technologies, santé (Reims, Marne)
Partenaire(s) de recherche : Laboratoire : Centre de Recherche en Sciences et Technologies de l'Information et de la Communication (CRESTIC) EA 3804 (Reims, Marne)
Jury : Président / Présidente : Olivier Flauzac
Examinateurs / Examinatrices : Michaël Krajecki, Guillaume Colin de verdiere, Florin Pop, Adrian Tate, Christophe Jaillet
Rapporteurs / Rapporteuses : Hervé Guyennet, Zineb Habbas

Mots clés

FR  |  
EN

Mots clés contrôlés

Résumé

FR  |  
EN

Les processeurs graphiques (GPU), originellement dédiés à l'accélération de traitements graphiques, ont une structure hautement parallèle. Les innovations matérielles et de langage de programmation ont permis d'ouvrir le domaine du GPGPU, où les cartes graphiques sont utilisées comme des accélérateurs de calcul pour des applications HPC généralistes.L'objectif de nos travaux est de faciliter l'utilisation de ces nouvelles architectures pour les besoins du calcul haute performance ; ils suivent deux objectifs complémentaires.Le premier axe de nos recherches concerne la transformation automatique de code, permettant de partir d'un code de haut niveau pour le transformer en un code de bas niveau, équivalent, pouvant être exécuté sur des accélérateurs. Dans ce but nous avons implémenté un transformateur de code capable de prendre en charge les boucles « pour » parallèles d'un code OpenMP (simples ou imbriquées) et de le transformer en un code CUDA équivalent, qui soit suffisamment lisible pour permettre de le retravailler par des optimisations ultérieures.Par ailleurs, le futur des architectures HPC réside dans les architectures distribuées basées sur des nœuds dotés d'accélérateurs. Pour permettre aux utilisateurs d'exploiter les nœuds multiGPU, il est nécessaire de mettre en place des schémas d'exécution appropriés. Nous avons mené une étude comparative et mis en évidence que les threads OpenMP permettent de gérer de manière efficace plusieurs cartes graphiques et les communications au sein d'un nœud de calcul multiGPU.