AVIS DE SOUTENANCE de Monsieur Boubacar KANE

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.