Maël MARTIN
Maël MARTIN a été doctorant au CEA, encadré par Hugo TABOADA. Son directeur de thèse était Patrick Carribault, Ingénieur Chercheur HDR du CEA.
Le sujet de thèse de Maël était le suivant : « Orchestration d’optimisations parallèles HPC à travers un DSL »
La portabilité des performances d’une application parallèle est un enjeu majeur dans un contexte où les architectures des supercalculateurs évoluent très rapidement par rapport à la durée de vie des applications.
L’utilisation d’un langage dédié (DSL - Domain Specific Language) permet de s’adapter à une nouvelle machine sans avoir à réécrire les applications. Pour cela, nous voulons définir une méthodologie permettant d’améliorer la génération de code parallèle à partir d’un DSL. Cela passe par définir les propriétés d’un DSL pour aiguiller une génération de code optimiser. Ensuite, nous proposons d’adapter une représentation intermédiaire en y intégrant les concepts liés au parallélisme pour que le code généré repose sur un support exécutif existant. De cette manière, nous pourrons séparer le code métier des modèles de programmation sous-jacent afin de ne pas réécrire les applications tout en bénéficiant des optimisations parallèles sur les futurs machines.
IWOMP 23 - International Workshop on OpenMP, 2023
abstract
Abstract
Many-core and heterogeneous architectures now require programmers to compose multiple asynchronous programming model to fully exploit hardware capabilities. As a shared-memory parallel programming model, OpenMP has the responsibility of orchestrating the suspension and progression of asynchronous operations occurring on a compute node, such as MPI communications or CUDA/HIP streams. Yet, specifications only come with the task detach(event) API to suspend tasks until an asynchronous operation is completed, which presents a few drawbacks. In this paper, we introduce the design and implementation of an extension on the taskwait construct to suspend a task until an asynchronous event completion. It aims to reduce runtime costs induced by the current solution, and to provide a standard API to automate portable task suspension solutions. The results show twice less overheads compared to the existing task detach clause.