DSM-PM2: Une Plate-Forme Portable Pour L'implémentation De Protocoles
Total Page:16
File Type:pdf, Size:1020Kb
DSM-PM2 : une plate-forme portable pour l’implémentation de protocoles de cohérence multithreads pour systèmes à mémoire virtuellement partagée Gabriel Antoniu To cite this version: Gabriel Antoniu. DSM-PM2 : une plate-forme portable pour l’implémentation de protocoles de co- hérence multithreads pour systèmes à mémoire virtuellement partagée. Informatique [cs]. Ecole normale supérieure de lyon - ENS LYON, 2001. Français. tel-00565382 HAL Id: tel-00565382 https://tel.archives-ouvertes.fr/tel-00565382 Submitted on 12 Feb 2011 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. N d’ordre : 200 N bibliothèque : 01ENSL0200 ÉCOLE NORMALE SUPÉRIEURE DE LYON Laboratoire de l’Informatique du Parallélisme THÈSE pour obtenir le grade de Docteur de l’École Normale Supérieure de Lyon spécialité : Informatique au titre de l’école doctorale de MathIF présentée et soutenue publiquement le 21 novembre 2001 par Monsieur Gabriel ANTONIU DSM-PM2 : une plate-forme portable pour l’implémentation de protocoles de cohérence multithreads pour systèmes à mémoire virtuellement partagée Directeurs de thèse : Monsieur Luc BOUGÉ Monsieur Raymond NAMYST Après avis de : Monsieur Thierry PRIOL Monsieur Pierre SENS Devant la commission d’examen formée de : Monsieur Luc BOUGÉ, Membre Monsieur Denis CAROMEL, Membre Monsieur Raymond NAMYST, Membre Monsieur Thierry PRIOL, Membre et Rapporteur Monsieur Pierre SENS, Membre et Rapporteur Monsieur Jean-Bernard STEFANI, Membre À la mémoire de mes parents, Remerciements Ce manuscrit est le résultat de trois années de travail. Pendant ces trois années j’ai découvert un domaine de recherche intéressant que j’ai exploré et dans lequel j’ai proposé un petit incré- ment. C’est l’évaluation de cet incrément qui fait réunir un jury autour d’une table aujourd’hui, le 21 novembre 2001. Je remercie Thierry Priol, Pierre Sens, Denis Caromel et Jean-Bernard Stefani d’être venus des quatre coins de la France pour juger mon travail. Les remarques particulièrement constructives de Thierry et de Pierre, en leur qualité de rapporteurs, m’ont permis d’acquérir une vision légèrement différente de mon travail et de le juger avec plus de recul. Mais, tout naturelle- ment, c’est à mes excellents directeurs de thèse, Luc Bougé et Raymond Namyst que s’adressent mes premiers remerciements. C’est le cours de parallélisme de données de Luc, suivi en DEA, qui a tout déclenché. Savoir pré- senter un domaine d’une manière aussi claire et aussi attractive est un art, et Luc en est le maître. Ce cours, avec les exposés et les débats auxquels il nous faisait participer, m’a donné un aperçu de ce que peut être la vie de chercheur et m’a clairement donné envie de la choisir. Même si ce choix a été préparé par certaines expériences antérieures, ce cours a confirmé mon intuition et a mis fin a quelques hésitations. J’ai donc décidé de faire mon stage de DEA sous la direction de Luc et... c’est là que j’ai découvert Raymond, co-encadrant du stage. Les deux m’ont démontré d’une manière particulièrement convaincante comment on peut, en quelques mois, apprendre un domaine, choi- sir un problème et même le résoudre d’une manière qu’on n’aurait même pas imaginé au début ! J’ai donc décidé de continuer cette expérience avec eux pendant trois ans. Raymond, dont j’ai été le premier doctorant, m’a fait découvrir tout un domaine (que j’ai aimé même si ce n’était pas tout a fait celui que j’avais choisi initialement !). Avec compétence et patience, il m’a souvent montré que là où il semblait ne pas y avoir de solution, il pouvait tout de même y en avoir une. Merci Ray- mond, pour ton optimisme irrémédiable, pour ta jovialité et pour ta confiance constante ! De son côté, Luc m’a aidé à mieux définir ma démarche (et à mieux l’expliquer !), mais il m’a surtout fait comprendre qu’il était toujours disponible et que mes requêtes d’interaction étaient plus impor- tantes que la plupart de ses autres tâches. Son énorme disponibilité pour toute discussion, qu’elle ait été technique ou stratégique, sur le contenu ou sur la forme, a compté pour beaucoup dans la progression de mon travail de thèse. Je le remercie très chaleureusement. Merci aussi, Raymond et Luc, pour m’avoir mis précisément dans ces situations particulièrement fertiles, comme la partici- pation à IPDPS 1999 et les visites chez Phil Hatcher, qui ont été déterminantes pour l’orientation de ma thèse. En effet, cette thèse est également le résultat d’autres interactions, plus ou moins choisies. Les séjours dans l’équipe de Phil Hatcher ont été particulièrement fructueuses (quatre fois coauteurs !). Merci, Phil, j’ai beaucoup apprécié ton efficacité, mais aussi ta gentillesse ! Par ailleurs, la rencontre avec Frank Muller à IPDPS 1999, suivie de mon séjour à Berlin, a été à l’origine des premières idées développées dans cette thèse. Je remercie Frank pour m’avoir tout dit sur DSM-Threads (mais aussi pour m’avoir hébergé chez lui pendant une agréable semaine et m’avoir fait découvrir Berlin et la Kristalweizen !). Mais je dois également remercier le LIP en son ensemble, qui fournit un environnement si fa- vorable à la recherche et si convivial ! Tout particulièrement mes remerciements vont vers mes collègues de travail. Et en premier vers Christian Pérez, mon "aîné" dans l’équipe PM2, premier collègue de bureau et premier collaborateur. (Nos discussions joviales ont souvent fait que la jour- née démarre bien ! ) Je remercie Ioan pour m’avoir fait découvrir le LIP et pour m’avoir parlé des merveilleuses choses qui s’y passaient. Mais je remercie aussi les autres : Guillaume Huard, Olivier Reymann, Olivier Aumage (que j’aurais tant aimé rendre plus bavard sur Madeleine et autres !), Vincent Danjean (merci pour tes excellents gâteaux !), Arnaud Legrand, Frédéric Suter, Martin Quinson et mille pardons à ceux que j’oublie ! Je remercie aussi Anne-Pascale, Sylvie, Marie et Corinne pour leur assistance efficace dans les diverses démarches administratives (mais aussi pour leur bonne humeur !) Même si l’environnement du LIP m’a été très favorable, le résultat de mon travail de thèse n’aurait peut-être pas eu été le même sans le soutien et les encouragements constants de mon épouse. Je te remercie pour tout, Magda. Les détails sont inutiles. Je remercie également tes parents pour avoir assumé, loin, des responsabilités qui me revenaient, me laissant ainsi libre de me concentrer sur mon travail. Enfin, je remercie ceux qui ont eu une influence importante sur mes choix essentiels. Paradoxale- ment pour certains, peut-être, il s’agit des professeurs de littérature de mon adolescence : Elisabeta Nicolescu et Anton Chevorchian. Ma décision de faire une thèse prend ses racines dans le système de valeurs qu’ils m’ont transmis. Si, si, même si "ce qui existe existait déjà à l’état potentiel", savoir rendre réel n’est pas rien... Résumé : Dans leur présentation traditionnelle, les systèmes à mémoire distribuée virtuellement partagée (MVP, en anglais DSM) permettent à des processus de partager un espace d’adressage commun selon un modèle de cohérence fixé : cohérence séquentielle, à la libération, etc. Les pro- cessus peuvent habituellement être distribués sur des noeuds physiquement distincts et leurs in- teractions par la mémoire commune sont implémentées (de manière transparente) par la MVP, en utilisant une bibliothèque de communication. Dans la plupart de travaux dans ce domaine, il est sous-entendu que la MVP et l’architecture sous-jacente sont données. Le programmeur doit alors adapter son application à ce cadre fixe, afin d’obtenir une exécution efficace. Cette approche impose des limitations statiques et ne permet pas de comparer des approches alternatives. La contribution de cette thèse consiste à proposer une plate-forme générique d’implémentation et d’expérimentation appelée DSM-PM2, qui permet de développer et d’optimiser conjointement les applications distribuées et le(s) protocole(s) de cohérence de la MVP sous-jacente. Cette plate- forme, implémentée entièrement au niveau logiciel, est portable sur plusieurs architectures de grappes hautes performances. Elle fournit les briques de bases nécessaires pour implémenter et évaluer une large classe de protocoles de cohérence multithreads dans un cadre unifié. Trois mo- dèles de cohérence sont actuellement supportés : la cohérence séquentielle, la cohérence à la libéra- tion et la cohérence Java. Plusieurs études de performance ont été effectuées à l’aide d’applications multithreads pour l’ensemble des protocoles proposés, sur différentes plates-formes. DSM-PM a été validé par son utilisation en tant que cible d’un système de compilation Java pour des grappes appelé Hyperion. Mots-clés : Parallélisme, processus légers, threads, mémoire virtuellement partagée, DSM, PM2, iso-adresse, migration, Hyperion, compilation Java. Abstract: In their traditional flavor, Distributed Shared Memory (DSM) libraries allow a number of separate processes to share a common address space using a consistency protocol according to a semantics specified by some given consistency model: sequential consistency, release consistency, etc. The processes may usually be physically distributed among a number of computing nodes interconnected through some communication library. Most approaches to DSM programming assume that the DSM library and the underlying architecture are fixed, and that it is up to the programmer to fit his program with them. This static view does not allow experimentations with alternative implementations.