DESCRIPTION :
Le calcul haute performance (HPC) joue un rôle essentiel dans l'avancement scientifique dans des domaines tels que l'intelligence artificielle, la modélisation climatique, et l'ingénierie, en fournissant la puissance de calcul nécessaire pour traiter de vastes ensembles de données. Dans les systèmes HPC, les applications s'exécutant sur les nœuds de calcul accèdent aux données via des systèmes de fichiers parallèles (PFS) comme Lustre ou BeeGFS. Ces systèmes répartissent les données sur plusieurs dispositifs de stockage afin de permettre un accès simultané, indispensable pour atteindre un débit élevé. Toutefois, un écart persistant entre la vitesse de traitement et celle des entrées/sorties (E/S) conduit de nombreuses applications HPC à passer une part importante de leur temps d'exécution sur des opérations d'E/S, ce qui limite leur efficacité.
La performance des E/S dépend fortement de la manière dont les applications accèdent au système de fichiers, notamment en ce qui concerne leurs schémas d'accès. Des facteurs tels que le nombre de fichiers manipulés, la taille des requêtes ou le partage des données entre processus ont un impact significatif sur le rendement. De plus, lorsque plusieurs applications accèdent simultanément au système de fichiers parallèle, leurs schémas d'accès peuvent interférer entre eux et dégrader la performance globale. Cette interférence n'est pas uniforme : certaines applications peuvent en perturber d'autres, selon leurs caractéristiques d'accès. Cette contention peut allonger les temps d'exécution, mobiliser les ressources de calcul plus longtemps et augmenter la variabilité des performances. Dans certains cas, une application mal optimisée peut accaparer une grande partie de la bande passante, ralentissant les autres et diminuant l'efficacité globale du système. Étant
donné que ces effets restent encore difficilement prévisibles, il devient crucial de mettre en place des stratégies d'ordonnancement des E/S plus intelligentes et sensibles au comportement des applications dans les environnements HPC.
Mission confiée
L'objectif de cette thèse est d'appliquer des stratégies d'ordonnancement des E/S afin de réduire la contention et d'améliorer les performances d'entrée/sortie dans les systèmes HPC. Elle sera réalisée en collaboration entre deux équipes d'Inria (TADaaM, à Bordeaux, et KerData, à Rennes), dans le cadre du projet NumPEx, qui vise à construire la pile logicielle des futurs systèmes français à l'échelle exaflopique.
Principales activités
Atteindre cet objectif implique de traiter différentes problématiques, présentées ci-dessous.
Identification des schémas d'accès courants à partir de grandes bases de données : Des jeux de données publics contenant des traces Darshan issues de systèmes HPC peuvent être utilisés à cette fin. Ces traces couvrent une grande partie des travaux exécutés sur un système pendant une période donnée et fournissent des compteurs agrégés pour chaque fichier accédé par un travail. L'objectif de cette activité est d'étudier ces jeux de données afin d'identifier des schémas communs de comportement des applications. Ce travail s'appuiera sur des outils existants tels que MOSAIC. En fonction du nombre de schémas identifiés, des techniques de regroupement (clustering) pourront être utilisées pour les classer en catégories représentatives.
Étude de l'interférence entre les schémas d'accès courants : L'étape suivante consistera à évaluer comment ces schémas d'accès interagissent entre eux. Des expérimentations seront menées sur différents systèmes afin de déterminer l'impact des schémas spécifiques les uns sur les autres ainsi que sur les performances globales du système. L'objectif est d'identifier quels schémas dégradent la performance d'autres schémas ou du système dans son ensemble. Compte tenu du nombre potentiellement important de cas à analyser et de la nature chronophage des expérimentations sur les E/S, une méthodologie rigoureuse et efficace sera nécessaire pour explorer cet espace de paramètres de manière optimale.
Ordonnancement des E/S sensible aux schémas d'accès : À partir des résultats obtenus lors de l'étude des interférences, une stratégie d'ordonnancement des E/S sera proposée, tenant compte des caractéristiques des applications et de leur impact sur les autres applications. Une piste consiste à adapter une méthode d'ordonnancement existante (IO-Sets) initialement conçue pour des applications périodiques avec des fréquences d'exécution variables. Le principe clé est d'éviter que des applications incompatibles n'accèdent simultanément au système de fichiers. Cette approche paraît prometteuse, mais des études supplémentaires seront nécessaires pour déterminer comment regrouper les applications et comment calculer la priorité de chaque groupe. Par ailleurs, la stratégie proposée devra prendre en compte les comportements temporels des E/S lors de l'organisation des applications en ensembles d'ordonnancement.
Code d'emploi : Architecte Système (h/f)
Domaine professionnel actuel : Développeurs Système et Analystes
Niveau de formation : Bac+5
Temps partiel / Temps plein : Plein temps
Type de contrat : Contrat à durée déterminée (CDD)
Compétences : Intelligence Artificielle, Analyse des Données, Bash Shell, C ++ (Langage de Programmation), Interface en Ligne de Commande, Bases de Données, Partage des Données, Linux, Systèmes de Fichiers, Python (Langage de Programmation), LaTeX, Pandas, Anglais, Sens de la Communication, Axé sur le Succès, Réceptif, Création de Contenu, Expérimentation, Gestion des Ressources, Gestion de Planning
Courriel :
francieli.zanon-boito@inria.fr
Téléphone :
0524574000
Type d'annonceur : Employeur direct