Thèse soutenue

Gestion mémoire pour les systèmes d'exploitation et environnements d'exécution

FR  |  
EN
Auteur / Autrice : Alexis Lescouet
Direction : Gaël ThomasElisabeth Brunet
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 12/07/2021
Etablissement(s) : Institut polytechnique de Paris
Ecole(s) doctorale(s) : École doctorale de l'Institut polytechnique de Paris
Partenaire(s) de recherche : Laboratoire : Télécom SudParis (Evry ; 2012-....) - Département Informatique / INF - Algorithmes, Composants, Modèles Et Services pour l'informatique répartie / ACMES-SAMOVAR - Institut Polytechnique de Paris / IP Paris
Etablissement opérateur d'inscription : Télécom SudParis (Evry ; 2012-....)
Jury : Président / Présidente : Amel Bouzeghoub
Examinateurs / Examinatrices : Gaël Thomas, Elisabeth Brunet, Laurent Réveillère, Michaël Hauspie, Samuel Thibault
Rapporteurs / Rapporteuses : Laurent Réveillère, Michaël Hauspie

Résumé

FR  |  
EN

Avec l'émergence et l'évolution rapide de domaines scientifiques tels que l'analyse de données ou l'intelligence artificielle, les besoins en puissance de calcul ont fortement augmenté. Depuis des années, en raison de contraintes physiques, l'augmentation de la puissance des processeurs se fait au travers d'une augmentation du nombre de cœurs et non plus d'une augmentation de la fréquence. Ce nouveau paradigme nécessite une évolution du logiciel afin de pouvoir développer toute la puissance de ces machines, faisant ainsi du parallélisme une pierre angulaire de la pile logicielle. Les systèmes d'exploitation, directement concernés, doivent inclure différentes règles permettant la bonne gestion de différents types de machines. Cependant, la gestion de ressources est souvent divisée en différentes unités responsables chacune d'une ressource spécifique, qui prennent des décisions sans vision globale du système. De plus, en raison de la complexité et de l'évolution rapide du matériel, les systèmes d'exploitation ont de plus en plus de difficultés à tenir compte des variations subtiles entre deux machines. L'important développement de la technologie de virtualisation nous permet de proposer une nouvelle approche pour la gestion de ressources qui utilise la virtualisation pour ajouter une couche de gestion des ressources dédiée entre la machine et le système d'exploitation habituel. Au même titre que les systèmes d'exploitation, les applications doivent exécuter une partie de leur code en parallèle pour obtenir des performances élevées. C'est le cas en particulier pour les environnements d'exécution tels que MPI qui ont pour but d'aider à la parallélisation d'applications. Avec les architectures matérielles modernes dotées de réseaux rapides, le recouvrement de la communication réseau avec du calcul est devenu partie intégrante du parallélisme applicatif. Une certaine quantité de recouvrement peut être obtenue manuellement mais cela reste une procédure complexe. Notre approche propose de transformer automatiquement les communications bloquantes en communications non bloquantes, augmentant ainsi le potentiel de recouvrement. Pour cela, nous utilisons un thread séparé pour les communications et contrôlons les accès à la mémoire des communications. Nous garantissons ainsi la progression des communications et une meilleure parallélisation de celles-ci et des calculs.