Numerical methods for plasmas on massively parallel architectures
Méthodes numériques pour les plasmas sur architectures multicoeurs
Résumé
This thesis deals with the resolution of the Magneto-Hydro-Dynamic (MHD) system on massively parallel architectures. This problem is an hyperbolic system of conservation laws. For cost reasons in terms of time and space, we use the finite volume method. These criteria are particularly important in the case of MHD because the solutions obtained may have many shock waves and be very turbulent. The approach of a physical phenomenon requires working on a fine mesh which involves a large quantity of computations. In order to reduce the execution time of the proposed algorithms, we present several optimization methods for CPU execution such as the use of OpenMP for an automatic parallelization or an optimized way to browse a grid in order to benefit from cache effects. An implementation on GPU architecture using the OpenCL library is also available. To maintain a maximal coalescence of the data in memory, we propose a method using a directional splitting associated with an optimized transposition method for parallel implementations. In the last part, we present the SCHNAPS library. This solver using the Galerkin Disontinu (GD) method uses OpenCL and StarPU implementations in order to maximize the benefits of hybrid programming.
Cette thèse traite de la résolution du système de la Magnéto-Hydro-Dynamique (MHD) sur architectures massivement parallèles. Ce système est un système hyperbolique de lois de conservation. Pour des raisons de coût en termes de temps et d'espace, nous utilisons la méthode des volumes finis. Ces critères sont particulièrement importants dans le cas de la MHD, car les solutions obtenues peuvent présenter de nombreuses ondes de choc et être très turbulentes. L'approche d'un phénomène physique nécessite par conséquent de travailler sur un maillage fin entrainant une grande quantité de calcul. Afin de réduire les temps d'exécution des algorithmes proposés, nous proposons des méthodes d'optimisations pour l'exécution sur CPU telles que l'utilisation d'OpenMP pour une parallélisation automatique ou le parcours optimisé afin de bénéficier des effets de cache. Une implémentation sur architecture GPU à l'aide de la librairie OpenCL est également proposée. Dans le but de conserver une coalescence maximale des données en mémoire, nous proposons une méthode utilisant un splitting directionnel associé à une méthode de transposition optimisée pour les implémentations parallèle. Dans la dernière partie, nous présentons la librairie SCHNAPS. Ce solveur utilisant la méthode Galerkin Discontinu (GD) utilise des implémentations OpenCL et StarPU afin de profiter au maximum des avantages de la programmation hybride.
Origine | Version validée par le jury (STAR) |
---|