4 research outputs found

    Experimenting task-based runtimes on a legacy Computational Fluid Dynamics code with unstructured meshes

    Get PDF
    International audienceAdvances in high performance computing hardware systems lead to higher levels of parallelism and optimizations in scientific applications and more specifically in computational fluid dynamics codes. To reduce the level of complexity that such architectures bring while attaining an acceptable amount of the parallelism offered by modern clusters, the task-based approach has gained a lot of popularity recently as it is expected to deliver portability and performance with a relatively simple programming model. In this paper, we review and present the process of adapting part of Code Saturne, our legacy code at EDF R&D into a task-based form using the PARSEC (Parallel Runtime Scheduling and Execution Control) framework. We show first the adaptation of our prime algorithm to a simpler form to remove part of the complexity of our code and then present its task-based implementation. We compare performance of various forms of our code and discuss the perks of task-based runtimes in terms of scalability, ease of incremental deployment in a legacy CFD code, and maintainability

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

    No full text
    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 perpétuelle 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 Open MP (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 problème (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 séquentielle (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 Star PU et PaRSEC. Nous établissons leur intérêt pour l'évolution d'un code tel que cs comparé à l'utilisation de MPI+Open MP 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.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 alack of load balancing causes. This load balancing issue is a complex problemto solve for a code such as cs where partitionning is a NP problem and mustdata being indexed due to the unstructured nature of the meshes used. To solvethis 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 PaRSECin cs. We demonstrate their advantages over a solution such that MPI + OpenMP as well ascompare 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

    Amélioration des performances via un parallélisme multi-niveaux en maillage sur un code de CFD en maillages non structurés

    No full text
    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 alack of load balancing causes. This load balancing issue is a complex problemto solve for a code such as cs where partitionning is a NP problem and mustdata being indexed due to the unstructured nature of the meshes used. To solvethis 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 PaRSECin cs. We demonstrate their advantages over a solution such that MPI + OpenMP as well ascompare 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.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 perpétuelle 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 Open MP (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 problème (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 séquentielle (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 Star PU et PaRSEC. Nous établissons leur intérêt pour l'évolution d'un code tel que cs comparé à l'utilisation de MPI+Open MP 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

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

    No full text
    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 perpétuelle 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 Open MP (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 problème (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 séquentielle (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 Star PU et PaRSEC. Nous établissons leur intérêt pour l'évolution d'un code tel que cs comparé à l'utilisation de MPI+Open MP 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.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 alack of load balancing causes. This load balancing issue is a complex problemto solve for a code such as cs where partitionning is a NP problem and mustdata being indexed due to the unstructured nature of the meshes used. To solvethis 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 PaRSECin cs. We demonstrate their advantages over a solution such that MPI + OpenMP as well ascompare 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
    corecore