Where PhDs and companies meet
Menu
Login

Already registered?

New user?

Approche multi-niveau de la parallélisation hétérogène massive appliquée au cadre de la simulation sismique basée sur les éléments finis spectraux // Multi-level approach to massive heterogeneous parallelization applied to seismic simulation based on spec

ABG-125155
ADUM-58599
Thesis topic
2024-07-17 Other public funding
Université d'Orléans
ORLEANS - France
Approche multi-niveau de la parallélisation hétérogène massive appliquée au cadre de la simulation sismique basée sur les éléments finis spectraux // Multi-level approach to massive heterogeneous parallelization applied to seismic simulation based on spec
  • Open to all scientific expertises
calcul haute performance, parallélisme implicite, simulation numérique
High performance computing, implicit parallelism, numerical simulation

Topic description

La thèse proposée s'inscrit dans le cadre de l'ANR INSEPTION. L'objectif de ce travail est de proposer une architecture logicielle originale, multi-plateformes, multi-niveaux, hautement optimisée afin de préparer les codes de simulations sismiques basés sur les éléments finis spectraux (SEM) pour le calcul exascale. Ce travail est basé sur le constat suivant : les performances des codes SEM pourraient être considérablement améliorées en utilisant une architecture orientée SIMD, en visant une réutilisation du cache et en prenant finement en compte la disposition des données. Le travail du doctorant portera sur la définition d'une combinaison optimale de vectorisation basée sur l'usage d'intrinsics SIMD et de kernels GPU, d'optimisations de mémoire et de réorganisations optimisées de la disposition des données. Ce type d'approche n'est pas encore disponible pour les outils basés sur les SEM. Le travail prendra la forme d'une bibliothèque modulaire dissociant les optimisations de bas niveau, du code de haut niveau décrivant les équations fondamentales de la méthode SEM. Cette architecture logicielle améliorera la portabilité entre CPU et GPU qui ont des caractéristiques très différentes (unités SIMD, hiérarchies de mémoire) et différents paradigmes de programmation, bibliothèques et outils (intrinsics SIMD, OpenMP, CUDA, HIP, OneAPI). Cette étape est essentielle afin de faciliter la modernisation des codes pour viser l'exascale.
Les optimisations de bas niveau peuvent être spécifiques à chaque architecture, et a fortiori aux combinaisons d'architectures CPU et GPU. Pour assurer la performance et la portabilité, il sera nécessaire dans un premier temps d'implémenter des optimisations spécifiques en tant que blocs de construction de l'architecture logicielle et fournir des interfaces de plus haut niveau pour construire au-dessus de ces derniers. Dans un second temps, il conviendra de combiner ces blocs en utilisant des techniques de métaprogrammation (modèles C++ ou HIP Runtime API et Langage de Kernel), gérer le parallélisme à l'aide de squelettes algorithmiques, et abstraire les détails sous-jacents dans un DSL, en fournissant des types et des opérateurs pour exprimer le calcul sur les éléments tout en cachant les détails d'optimisation aux sismologues. L'ensemble de ces quatre couches sera mis en œuvre tout en vérifiant et en s'assurant que les transformations de code et les optimisations du compilateur n'affectent pas les niveaux de performance apportés par les optimisations de bas niveau proposées.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------

This thesis is granted by the ANR project INSEPTION. The aim of this work is to propose an original, multi-platform, multi-level, highly optimized software architecture to prepare the seismic simulation codes based on spectral element methods (SEM) for exascale computing. This work is based on the following observation: the performance of codes could be considerably improved by using a SIMD-oriented architecture, aiming at cache reuse and finely taking into account data layout. The PhD student's work will focus on defining an optimal combination of vectorization based on the use of SIMD intrinsics and GPU kernels, memory optimizations and optimized data layout reorganizations. This type of approach is not yet available for SEM-based tools. The work will take the form of a modular library dissociating the low-level optimizations from the high-level code describing the fundamental equations of the SEM method. This software architecture will improve portability between CPUs and GPUs, which have very different characteristics (SIMD units, memory hierarchies) and different programming paradigms, libraries and tools (SIMD intrinsics, OpenMP, CUDA, HIP, OneAPI). This step is essential to facilitate the modernization of codes for exascale. Low-level optimizations can be specific to each architecture, and a fortiori to combinations of CPU and GPU architectures. To ensure performance and portability, it will first be necessary to implement specific optimizations as building blocks of the software architecture and provide higher-level interfaces to build on top of them. In the second stage, it will be necessary to combine these blocks using metaprogramming techniques (C++ or HIP Runtime API models and Kernel Language), manage parallelism using algorithmic skeletons, and abstract the underlying details into a DSL, providing types and operators to express computation over elements while hiding optimization details from seismologists. All four layers will be implemented while checking and ensuring that code transformations and compiler optimizations do not affect the performance levels brought by the proposed low-level optimizations.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Début de la thèse : 01/11/2024
WEB : https://anr.fr/Projet-ANR-23-CE46-0003

Funding category

Other public funding

Funding further details

ANR Financement d'Agences de financement de la recherche

Presentation of host institution and host laboratory

Université d'Orléans

Institution awarding doctoral degree

Université d'Orléans

Graduate school

551 Mathématiques, Informatique, Physique Théorique et Ingénierie des Systèmes - MIPTIS

Candidate's profile

Calcul haute performance optimisation de code calcul vectoriel programmation GPU Simulation numérique
High performance computing Code optimization Code vectorization GPU programming Numerical simulations
2024-09-30
Partager via
Apply
Close

Vous avez déjà un compte ?

Nouvel utilisateur ?