Amélioration des performances via un parallélisme multi niveau en maillage non structuré sur un code de CFD

par Benjamin Lorendeau

Thèse de doctorat en Informatique

Sous la direction de Emmanuel Jeannot.

Thèses en préparation à Bordeaux , dans le cadre de École doctorale de mathématiques et informatique (Talence, Gironde) , en partenariat avec Laboratoire bordelais de recherche en informatique (laboratoire) .


  • Résumé

    L'évolution constante ainsi que la complexification qui s'en suit des architectures matérielles oblige les personnes développant des codes de simulations scientifiques à une mise à jour perpetuelle de leur logiciel et de leurs connaissances afin de maintenir une bonne exploitation des performances de ces plateformes de calcul. L'hétérogénéité récente de ces plateformes et la multiplication du nombres de coeurs par machine posent notamment une nouvelle problématique aux logiciels largement parallélisés via l'utilisation de la bibliothèque d'échange de message MPI, qui se voient perdre en performance au fur et à mesure de l'augmentation du parallélisme local à exploiter. Pour cs, la transition vers l'exploitation d'un parallélisme hybride via l'association de MPI avec OpenMP (en parallélisme de boucles) peine à s'imposer et ne résout pas les soucis de passage à l'échelle causé par un manque d'équilibrage de charge. Pour répondre à ce probleme (ainsi que ceux de la portabilité d'un code et sa capacité à exploiter les plateformes hétérogènes), l'utilisation de la programmation par tâches a récemment gagné en popularité à travers trois méthodes: parallélisme par boucle, tâches soumises de manière sequentielle (STF, flux de tâche séquentiel) ou paramétrique (PTG: graphe de tâches paramétré). Cette thèse se concentre sur l'effort de transition de cs, un code de simulation en mécanique des fluides sur maillages non structurés (algèbre linéaire creuse) vers l'utilisation d'un support exécutif à base de tâches. Pour se faire, une évaluation des deux derniers paradigmes est proposée via l'utilisation des supports StarPU et PaRSEC. Nous établissons leur intérêt pour l'évolution d'un code tel que cs comparé à l'utilisation de MPI+OpenMP et nous les comparons sur des questions de complexité et de performance avec l'existant dans cs. Cette thèse est une collaboration entre le département MFEE de EDF R&D et l'équipe Tadaam qui met en commun Inria Bordeax Sud-Ouest, le LaBRI, l'Université de Bordeaux 1 et Bordeaux INP.

  • Titre traduit

    Improving performance of a CFD code with unstructured meshes through multi level parallelism


  • Résumé

    The ever-evolving and ultimately complexification of computer architectures enforce scientific developpers to maintain both their software and technical knowledge in order to pertain their ability to fully exploit recent high performance computing platforms. Moreover the birth of heterogeneous plateforms and the large increase in core number per processor lead developpers of software parallelized through distributed paralleslim to see a small but consistent decrease of performance on recent plateforms. For cs, the transission from a full MPI code to a MPI+OpenMP code is not fully satisfying and cannot adress the scalability issue that a lack of load balancing causes. This load balancing issue is a complex problem to solve for a code such as cs where partitionning is a NP problem and must data being indexed due to the unstructured nature of the meshes used. To solve this kind of issue and many others (such as portability and heterogeneity), the use of a task based runtime recently won popularity through three different ways: loop parallelism, sequential submission of task (STF) or parameterized task graph (PTG). This thesis is focused on the transition effort of cs, a computational fluid dynamic (CFD) code with unstructured meshes (sparse linear algebra) from a mostly distributed parallelism to the integration of a task based runtime. In order to do this, we investigated the STF and PTG paradigms through the use of StarPU and PaRSEC in cs. We demonstrate their advantages over a solution such that MPI + OpenMP as well as compare their use in terms of complexity and performance with the existing solutions in cs. This thesis was made through the collaboration between the MFEE department of EDF R&D and the Tadaam research team, grouping Inria Bordeaux Sud-Ouest, the LaBRI, University of Bordeaux 1 and Bordeaux INP.