A HIGH-LEVEL PARALLEL DEVELOPMENT FRAMEWORK FOR GRAPHIC ACCELERATORS: AN IMPLEMENTATION BASED ON OPENMP - Archive ouverte HAL Access content directly
Theses Year : 2013

A HIGH-LEVEL PARALLEL DEVELOPMENT FRAMEWORK FOR GRAPHIC ACCELERATORS: AN IMPLEMENTATION BASED ON OPENMP

UN ENVIRONNEMENT PARALLÈLE DE DÉVELOPPEMENT HAUT NIVEAU POUR LES ACCÉLÉRATEURS GRAPHIQUES : MISE EN OEUVRE À L'AIDE D'OPENMP

(1)
1
Gabriel Noaje
  • Function : Author
  • PersonId : 941260

Abstract

Graphic cards (GPUs), initially used for graphic processing, have a highly parallel architecture. Innovations in both architecture and programming languages opened the new domain of GPGPU where GPUs are used as accelerators for general purpose HPC applications. Our main objective is to facilitate the use of these new architectures for high-performance computing needs; our research follows two main directions. The first direction concerns an automatic code transformation from a high level code into an equivalent low level one, capable of running on accelerators. To this end we implemented a code transformer that can handle parallel ''for'' loops (single or nested) of an OpenMP code and convert it into an equivalent CUDA code, which is in a human readable form that allows for further optimizations. Moreover, the future of HPC lies in distributed architectures based on hybrid nodes. Specific programming schemes have to be used in order to allow users to benefit from such multiGPU nodes. We conducted a comparative study which revealed that using OpenMP threads is the most adequate way to control multiple graphic cards as well as manage communications efficiently within a multiGPU node.
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 noeuds dotés d'accélérateurs. Pour permettre aux utilisateurs d'exploiter les noeuds 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 noeud de calcul multiGPU.
Fichier principal
Vignette du fichier
These_Gabriel_Noaje.pdf (6.14 Mo) Télécharger le fichier
Loading...

Dates and versions

tel-00822285 , version 1 (14-05-2013)

Identifiers

  • HAL Id : tel-00822285 , version 1

Cite

Gabriel Noaje. UN ENVIRONNEMENT PARALLÈLE DE DÉVELOPPEMENT HAUT NIVEAU POUR LES ACCÉLÉRATEURS GRAPHIQUES : MISE EN OEUVRE À L'AIDE D'OPENMP. Calcul parallèle, distribué et partagé [cs.DC]. Université de Reims - Champagne Ardenne, 2013. Français. ⟨NNT : ⟩. ⟨tel-00822285⟩

Collections

URCA CRESTIC
350 View
725 Download

Share

Gmail Facebook Twitter LinkedIn More