Projet de recherche doctoral numero :3432

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