Description
Date depot: 1 janvier 1900
Titre: Abstractions Performantes pour Cartes Graphiques
Directeur de thèse:
Emmanuel CHAILLOUX (LIP6)
Domaine scientifique: Sciences et technologies de l'information et de la communication
Thématique CNRS : Non defini
Resumé:
L'architecture des ordinateurs pour le calcul scientifique est en
constante évolution. Les processeurs se voient adjoindre des
accélérateurs de calcul pour offrir un haut niveau de performance dans
les applications de calcul intensif. Actuellement, les cartes
graphiques (GPU) ont été largement détournées de leur utilisation
traditionnelle.
Ces solutions architecturales nécessitent de mettre en place des
méthodes de programmation beaucoup plus complexes et les programmes
écrits très liés à l'architecture cible sont peu portables. Dans ce
contexte, un certain nombre de solutions commencent à émerger pour
abstraire les accélérateurs de calcul. Elles s'appuient sur les
langages Fortran ou C et proposent :
-* soit des frameworks de bas niveau comme Brooks [BFH+04], CUDA de Nvidia [NVI] ou OpenCL [Gro]
-* soit des environnements plus complets comme HMPP [DBB07] qui au travers de directives permet d'ajouter des informations sémantiques pour faciliter le travail du compilateur ou RapidMind [MWHL06] qui offre un modèle de programmation par flux.
La principale limitation de ces outils est leur faible niveau
d'abstraction qui limite le type d'application à des applications de
types opérations parallèles sur des tableaux réguliers.
A ce jour, peu de travaux ont été effectués afin d'étudier la
possibilité de développer des applications de calcul scientifique à
l'aide de langage possédant un haut niveau d'abstraction car
abstraction et performance sont souvent considérés comme antagoniste.
L'objectif de cette thèse est d'étudier les possibilités d'atteindre
un très haut niveau de performance avec le langage Objective Caml tout
d'abord sur un vrai code de calcul dans un environnement
processeur-accélérateur de calcul et ensuite dans un cadre plus
général de programmation.
Pour cela, le travail s'appuiera sur le programme PROP du code 2DRMP
de la bibliothèque CPC (Computer Physics Communications) [2DRMP]. Ce code
simule la diffusion d'un électron au sein d'un atome ou d'un ion
d'hydrogène. L'objectif du travail est de développer des méthodes pour
étendre le langage Objective Caml afin de rendre possible
l'utilisation des accélérateurs de calcul de type GPU. Différentes
approches pourront être envisagées : composition de codes de calcul
exécutés sur le GPU à partir d'un programme Objective Caml à une
exécution complète du calcul sur le GPU.
Dans un deuxième temps, le programme PROP sera porté dans ce nouvel
environnement. Les performances en termes de puissance de calcul
seront alors comparées avec les différentes implémentations optimisées
sur CPU, grille de calcul ou GPU. Une réflexion sera ensuite menée
pour mettre en relation les facilités de développement liées à
l'expressivité d'Objective Caml et les performances obtenues et la
portabilité.
Dans un troisième temps, cette réflexion permettra d'effectuer des choix
d'implantation dans l'environnement de développement GPU initial pour
faciliter l'expression d'algorithmes parallèles tout en conservant un
bon niveau d'efficacité. Ce qui pourra être vérifié par rapport à
d'autres extensions parallèle d'OCaml comme OC4MC [OC4MC] ou HirondML
[HIRONDML].
{{Références}}
[Brook] Ian Buck, Tim Foley, Daniel Horn, Jeremy Sugerman, Kayvon Fatahalian, Mike Houston, and Pat Hanrahan.
Brook for gpus: Stream computing on graphics hardware.
ACM TRANSACTIONS ON GRAPHICS, 23:777-786, 2004.
[HMPP] R. Dolbeau, S. Bihan, and F. Bodin.
HMPP: A hybrid multi-core parallel programming environment.
In Proceedings of the Workshop on General Purpose Processing on Graphics Processing Units, 2007.
[OPENCL] Khronos Group. Opencl,
The open standard for parallel programming of heterogeneous systems
http://www.khronos.org/opencl/
[RAPIDMIND] Michael D. McCool, Kevin Wadleigh, Brent Henderson, and Hsin-Ying Lin.
Performance evaluation of gpus using the rapidmind development platform.
In SC'06: Proceedings of the 2006 ACM/IEEE conference on Supercomputing, page 181, 2006.
[NVIDIA] Nvidia cuda - http://www.nvidia.com/object/cuda_home.html.
[OC4MC] Mathias Bourgoin, Benjamin Canou, Emmanuel Chailloux, Jonquet Adrien, and Wang Philippe.
Oc4mc : Objective caml for multicore architectures.
Technical report, Draft of the 21th Symposium on Implementation and Application of Functional Languages - Departement of Mathematics and Computer Science, Seton Hall University, SHU-TR-CS-2009-09-1, September 2009. 15 pages.
[HIRONDML] Emmanuel Chailloux, Vivien Ravet, and Julien Verlaguet. Hirondml : Fair threads migrations for objective caml. Parallel Processing Letters, 18(1):55-69, March 2008.
[2DRMP] N.S. Scott, M.P. Scott, P.G. Burke, T. Stitt, V. Faro-Maza, C. Denis, and A. Maniopoulou.
2DRMP: A suite of two-dimensional R-matrix propagation codes.
Computer Physics Communications, 180:2424–2449, 2009. ISSN: 0010-4655, doi:10.1016/j.cpc.2009.07.017.
[Cell] S. Graillat, J.‑L. Lamotte, D. Nguyen Hong.
Extended precision with a rounding mode toward ze
Doctorant.e: Bourgoin Mathias Benoit