A Domain Specific Embedded Language in C++ for lowest-order methods for diffusive problem on general meshes - Archive ouverte HAL Access content directly
Theses Year : 2013

A Domain Specific Embedded Language in C++ for lowest-order methods for diffusive problem on general meshes

Jean-Marc Gratien
  • Function : Author
  • PersonId : 936934


Industrial simulation software has to manage: (i) the complexity of the underlying physical models,usually expressed in terms of a PDE system completed with algebraic closure laws, (ii) the complexity of numerical methods used to solve the PDE systems, and finally (iii) the complexity of the low level computer science services required to have efficient software on modern hardware. Robust and effective finite volume (FV) methods as well as advanced programming techniques need to be combined in order to fully benefit from massively parallel architectures (implementation of parallelism, memory handling, design of connections). Moreover, the above methodologies and technologies become more and more sophisticated and too complex to be handled only by physicists. Nowadays, this complexity management becomes a key issue for the development of scientific software.Some frameworks already offer a number of advanced tools to deal with the complexity related to parallelism in a transparent way. Hardware complexity is hidden and low level algorithms which need to deal directly with hardware specificity, for performance reasons, are provided. They often offer services to manage mesh data services and linear algebra services which are key elements to have efficient parallel software. A new consistent unified mathematical frame has recently emerged and allows a unified description of a large family of lowest-order methods. This framework allows then, as in FE methods, the design of a high level language inspired from the mathematical notation, that could help physicists to implement their application writing the mathematical formulation at a high level, hiding the complexity of numerical methods, while low level computer science services ensure the efficiency. We propose to develop a language based on that frame, embedded in the C++ language, approach, zltrzdy used used in projects like Feel++ or Sundance. We present the mathematical framework that enables us to describe a wide family of lowest order methods including multiscale methods based on lowest order methods. We propose a DSEL developed on top of Arcane platform, based on the concepts presented in the unified mathematical frame and on the Feel++ DSEL. We present the C++ representations of these mathematical concepts, which are the foundation for the user-friendly interface, the front-end of a specific language which conceals most of the implementation details and allows the numerician to focus on discretization methods. The DSEL is implemented with the Boost.Proto library, a powerful framework to build a DSEL in C++ in a declarative way, which provides a collection of generic concepts and metafunctions that help to design a DSL, its grammar and tools to parse and evaluate expressions. We provide several numerical examples to assess the performance of the proposed approach.We propose an extension of the computational framework to mutiscale methods. We focus on the capability of our approach to handle complex methods based on the basic bricks of the framework and to describe and implement new methods assembling them. We validate our approach with multiscale methods with several numerical examples. We extend our approach to the runtime system layer providing an abstract layer that enable our DSEL to generate efficient code for heterogeneous architectures. We validate the design of this layer by benchmarkingthe multiscale method. This method provides a great amount of independent computations and is therefore the kind of algorithms that can take advantage efficiently of new hybrid hardware technology. Finally we benchmark various complex applications and study the performance
La spécificité des logiciels scientifiques développés par IFP Energies nouvelles tient avant tout à l'originalité des modèles représentant les situations physiques exprimés sous forme de systèmes d'EDPs assortis de lois de fermeture complexes. Le développement de ces logiciels, conçus pour être exécutés sur les super calculateurs parallèles modernes, nécessite de combiner des méthodes volumes finis robustes et efficaces avec des technologies informatiques qui permettent de tirer au mieux parti de ces calculateurs (parallélisme, gestion de la mémoire, réseaux d'interconnexion, etc). Ces technologies de plus en plus sophistiquées ne peuvent plus être maîtrisées dans leur ensemble par les chercheurs métiers chargés d'implémenter des nouveaux modèles. Dans ce rapport nous proposons un langage spécifique aux méthodes de discrétisation Volumes Finis permettant le prototypage rapide de codes industriels ou de recherche. Nous décrivons le cadre mathématique sur lequel nous nous basons ainsi que la mise au point du nouveau langage. Les travaux out été validés sur des problèmes académiques puis par le prototypage d'une application industrielle dans le cadre de l'axe ''CO2 maîtrisé''.
Fichier principal
Vignette du fichier
TheseJMG.pdf (2.93 Mo) Télécharger le fichier

Dates and versions

tel-00926232 , version 1 (09-01-2014)


  • HAL Id : tel-00926232 , version 1


Jean-Marc Gratien. A Domain Specific Embedded Language in C++ for lowest-order methods for diffusive problem on general meshes. Distributed, Parallel, and Cluster Computing [cs.DC]. Université de Grenoble, 2013. English. ⟨NNT : ⟩. ⟨tel-00926232⟩
464 View
912 Download


Gmail Facebook X LinkedIn More