L’Ecole doctorale : Ecole Doctorale de l’Institut Polytechnique de Paris
et le Laboratoire de recherche SAMOVAR – Services rĂ©partis, Architectures, ModĂ©lisation, Validation, Administration des RĂ©seaux
présentent
l’AVIS DE SOUTENANCE de Monsieur Boubacar KANE
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
« Les objets ajustés: Une approche bien fondée et efficace pour la programmation concurrente »
le VENDREDI 10 JANVIER 2025 Ă 10h00
Ă
Amphithéâtre 4
19 place marguerite perey 91120 palaiseau
Membres du jury :
M. Pierre SUTRA, Professeur, TĂ©lĂ©com SudParis, FRANCE – Directeur de these
Mme Vania MARANGOZOVA, Professeure, UniversitĂ© de Grenoble-Alpes, FRANCE – Rapporteur
M. Davide FREY, ChargĂ© de recherche, UniversitĂ© de Rennes, FRANCE – Rapporteur
M. Julien SOPENA, MaĂ®tre de confĂ©rences, Sorbonne UniversitĂ©, FRANCE – Examinateur
M. Petr KUZNETSOV, Professeur, TĂ©lĂ©com Paris, FRANCE – Examinateur
M. François TRAHAY, Professeur, TĂ©lĂ©com SudParis, FRANCE – Examinateur
« Les objets ajustés: Une approche bien fondée et efficace pour la programmation concurrente »
présenté par Monsieur Boubacar KANE
Résumé :
Depuis le milieu des annĂ©es 2000, l’augmentation de la frĂ©quence des transistors, contrainte par leur capacitĂ© Ă dissiper la chaleur produite, a considĂ©rablement rĂ©duit. En rĂ©ponse, les concepteurs de microprocesseurs ont optĂ© pour des architectures multicĹ“urs. Ainsi, le parallĂ©lisme est devenu indispensable pour tirer parti des capacitĂ©s de calcul des machines. Cependant, l’écriture de programmes parallèles et concurrents peut ĂŞtre complexe, nĂ©cessitant la gestion des entrelacements des fils d’exĂ©cution, du rĂ©-ordonnancement des tâches, ainsi qu’une solide comprĂ©hension du modèle mĂ©moire sur lequel le programme s’exĂ©cute. Pour faciliter la tâche des dĂ©veloppeurs, plusieurs bibliothèques (par exemple, java.util.concurrent, Boost.LockFree…) proposent des objets concurrents. Ces bibliothèques visent Ă rĂ©pondre aux besoins d’un large Ă©ventail de cas d’utilisation et, par consĂ©quent, les objets qu’elles implĂ©mentent sont souvent dotĂ©s d’interfaces très fournis, rendant leur implĂ©mentation complexe. En particulier, on utilise pour implĂ©menter ces objets des mĂ©canismes tels que les verrous, les barrières et les primitives non bloquantes comme « compare-and-swap », ce qui affecte directement les performances de l’objet. Pour obtenir de meilleures performances, il n’est pas rare que les dĂ©veloppeurs implĂ©mentent des versions « ad-hoc » de ces objets concurrents Nous appelons ces objets les objets ajustĂ©s. Cette thèse a pour objectif de jeter les bases thĂ©oriques et pratiques des objets ajustĂ©s. Pour ce faire, nous faisons d’abord un Ă©tat de l’art sur le support de la programmation parallèle et concurrente. Cet Ă©tat de l’art est suivi d’une analyse de plusieurs systèmes de gestion de donnĂ©es pour examiner dans quelle mesure l’interface des objets concurrents est utilisĂ© par les dĂ©veloppeurs. Ensuite, nous proposons la première dĂ©finition formelle des objets ajustĂ©s, basĂ©e sur un nouvel outil permettant de mesurer la parallĂ©lisabilitĂ© d’un objet concurrent : le graphe d’indistinguabilitĂ©. Plus loin, nous prĂ©sentons une bibliothèque d’objets ajustĂ©s nommĂ©e DEGO. Cette bibliothèque inclut plusieurs versions ajustĂ©es d’objets concurrents usuels, tels que dictionnaire, ensemble, file ou encore compteur. Chaque objet ajustĂ© offre une implĂ©mentation efficace pour un contexte particulier (par exemple, les opĂ©rations d’Ă©criture concurrentes sont toutes commutatives). La dernière partie de cette thèse porte sur l’Ă©valuation de la bibliothèque DEGO. Nous comparons les performances des objets ajustĂ©s Ă ceux de java.util.concurrent en utilisant des micro-benchmarks et une application de type rĂ©seau social.
Abstract :
Since the mid-2000s, the increase in transistor frequency has significantly slowed due to limitations in dissipating generated heat. In response, microprocessor designers have shifted towards multicore architectures, making parallelism essential to fully leverage the computing power of modern machines. However, writing parallel and concurrent programs is complex, requiring careful management of thread interleaving, task reordering, and a deep understanding of the memory model on which the program operates. To ease developers’ work, several libraries (e.g., java.util.concurrent, Boost.LockFree…) offer concurrent objects designed to address a wide variety of use cases. Consequently, these objects often feature extensive interfaces, making their implementation complex. Specifically, mechanisms such as locks, barriers, and non-blocking primitives like compare-and-swap are used to implement these objects, which directly impacts their performance. For better performance, developers frequently implement « ad-hoc » versions of these concurrent objects, which we refer to as « adjusted objects ». This thesis aims to establish both the theoretical and practical foundations of adjusted objects. To achieve this, we first present a review of the support for parallel and concurrent programming. This review is followed by an analysis of several data management systems to assess the extent to which concurrent object interfaces are used by developers. Next, we propose the first formal definition of adjusted objects, based on a new tool to measure the parallelizability of a concurrent object: the indistinguishability graph. Further, we introduce a library of adjusted objects named DEGO. This library includes several optimized versions of common concurrent objects, such as dictionaries, sets, queues, and counters. Each adjusted object provides an efficient implementation for a specific context (e.g., all concurrent write operations are commutative). The final part of this thesis focuses on evaluating the DEGO library, comparing the performance of adjusted objects with those in java.util.concurrent using micro-benchmarks and a social network-style application.