• Accueil
  • Accueil
  • Accueil
  • Accueil

CNRS

Rechercher




Accueil >

Soutenance de thèse de Monsieur Alexis LESCOUET,"Gestion mémoire pour les systèmes d’exploitation et environnements d’exécution"

L’École doctorale : École Doctorale de l’Institut Polytechnique de Paris
et le Laboratoire de recherche SAMOVAR présentent
l’AVIS DE SOUTENANCE de Monsieur Alexis LESCOUET
Autorisé à présenter ses travaux en vue de l’obtention du Doctorat de l’Institut Polytechnique de Paris, préparé à Télécom SudParis en :
Informatique
« Gestion mémoire pour les systèmes d’exploitation et environnements d’exécution »
le LUNDI 12 JUILLET 2021 à 14h00
à Amphithéâtre 2
19 Place Marguerite Perey, F-91120 Palaiseau, France

Membres du jury :

M. Gaël THOMAS, Professeur,
Télécom SudParis, FRANCE
Directeur de thèse
M. Laurent REVEILLERE, Professeur,
Université de Bordeaux, FRANCE
Rapporteur
M. Michael HAUSPIE, Maître de conférences,
Université de Lille, FRANCE
Rapporteur
Mme Élisabeth BRUNET, Maître de conférences,
Télécom SudParis, FRANCE
Co-encadrante de thèse
Mme Amel BOUZEGHOUB, Professeure,
Télécom SudParis, FRANCE
Examinateur
M. Samuel THIBAULT, Maître de conférences,
Université de Bordeaux, FRANCE
Examinateur


Résumé :

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 nombres de coe 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.

Abstract :

During the last decade, the need for computational power has increased due to the emergence and fast evolution of fields such as data analysis or artificial intelligence. This tendency is also reinforced by the growing number of services and end-user devices. Due to physical constraints, the trend for new hardware has shifted from an increase in processor frequency to an increase in the number of cores per machine. This new paradigm requires software to adapt, making the ability to manage such a parallelism the cornerstone of many parts of the software stack. Directly concerned by this change, operating systems have evolved to include complex rules each pertaining to different hardware configurations. However, more often than not, resources management units are responsible for one specific resource and make a decision in isolation. Moreover, because of the complexity and fast evolution rate of hardware, operating systems, not designed to use a generic approach have trouble keeping up. Given the advance of virtualization technology, we propose a new approach to resource management in complex topologies using virtualization to add a small software layer dedicated to resources placement in between the hardware and a standard operating system. Similarly, in user space applications, parallelism is an important lever to attain high performances, which is why high performance computing runtimes, such as MPI, are built to increase parallelism in applications. The recent changes in modern architectures combined with fast networks have made overlapping CPU-bound computation and network communication a key part of parallel applications. While some degree of overlap might be attained manually, this is often a complex and error prone procedure. Our proposal automatically transforms blocking communications into nonblocking ones to increase the overlapping potential. To this end, we use a separate communication thread responsible for handling communications and a memory protection mechanism to track memory accesses in communication buffers. This guarantees both progress for these communications and the largest window during which communication and computatio