Summary: | Les phénomènes physiques complexes peuvent être simulés numériquement par des techniques mathématiques. Ces simulations peuvent mener ainsi à la résolution de très grands systèmes. La parallélisation des codes de simulation numérique est alors une nécessité pour parvenir à faire ces simulations en des temps non-exorbitants. Le parallélisme s’est imposé au niveau des architectures de processeurs et les cartes graphiques sont maintenant utilisées pour des fins de calcul généraliste, aussi appelé "General-Purpose GPU", avec comme avantage évident l’excellent rapport performance/prix. Cette thèse se place dans le domaine de la conception de ces applications hautes-performances pour la simulation des machines électriques. Nous fournissons une méthodologie basée sur l’Ingénierie Dirigées par les Modèles (IDM) qui permet de modéliser une application et l’architecture sur laquelle l’exécuter, afin de générer un code OpenCL. Notre objectif est d’aider les spécialistes en algorithmes de simulations numériques à créer un code efficace qui tourne sur les architectures GPGPU. Pour cela, une chaine de compilation de modèles qui prend en compte plusieurs aspects du modèle de programmation OpenCL est fournie. De plus, nous fournissons des transformations de modèles qui regardent des niveaux d’optimisations basées sur les caractéristiques de l’architecture.Comme validation expérimentale, la méthodologie est appliquée à la création d’une application qui résout un système linéaire issu de la Méthode des Éléments Finis. Dans ce cas nous montrons, entre autres, la capacité de la méthodologie de passer à l’échelle par une simple modification de la multiplicité des unités GPU disponibles. === Complex physical phenomena can be numerically simulated by mathematical techniques. Usually, these techniques are based on discretization of partial differential equations that govern these phenomena. Hence, these simulations enable the solution of large-scale systems. The parallelization of algorithms of numerical simulation, i.e., their adaptation to parallel processing architectures, is an aim to reach in order to hinder exorbitant execution times. The parallelism has been imposed at the level of processor architectures and graphics cards are now used for purposes of general calculation, also known as "General- Purpose GPU". The clear benefit is the excellent performance/price ratio. This thesis addresses the design of high-performance applications for simulation of electrical machines. We provide a methodology based on Model Driven Engineering (MDE) to model an application and its execution architecture in order to generate OpenCL code. Our goal is to assist specialists in algorithms of numerical simulations to create a code that runs efficiently on GPGPU architectures. To ensure this, we offer a compilation model chain that takes into account several aspects of the OpenCL programming model. In addition, we provide model transformations that analyze some levels of optimizations based on the characteristics of the architecture. As an experimental validation, the methodology is applied to the creation of an application that solves a linear system resulting from the Finite Element Method (FEM). In this case, we show, among other things, the ability of the methodology of scaling by a simple modification of the number of available GPU devices.
|