Penser, modéliser et maîtriser le calcul



Documents pareils
Conception des systèmes répartis

4. Outils pour la synchronisation F. Boyer, Laboratoire Lig

Les processus légers : threads. Système L3, /31

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Ordonnancement temps réel

Problèmes liés à la concurrence

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

XtremWeb-HEP Interconnecting jobs over DG. Virtualization over DG. Oleg Lodygensky Laboratoire de l Accélérateur Linéaire

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Recherche dans un tableau

Un modèle générique de Garbage Collection pour les éditeurs collaboratifs basé sur l approche TO dans les environnements P2P et mobiles

Compilation (INF 564)

DOCUMENTATION - FRANCAIS... 2

Cours de Systèmes d Exploitation

DOCUMENTATION - FRANCAIS... 2

Cours 2: Exclusion Mutuelle entre processus (lourds, ou légers -- threads)

Systèmes et algorithmes répartis

NIVEAU D'INTERVENTION DE LA PROGRAMMATION CONCURRENTE

1 Activités d enseignement Enseignements Responsabilités... 5

Introduction aux systèmes temps réel. Iulian Ober IRIT

Métriques de performance pour les algorithmes et programmes parallèles

France SMS+ MT Premium Description

Cours Bases de données 2ème année IUT

Les Triggers SQL. Didier DONSEZ. Université de Valenciennes Institut des Sciences et Techniques de Valenciennes

Temps Réel. Jérôme Pouiller Septembre 2011

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Instructions pour mettre à jour un HFFv2 v1.x.yy v2.0.00

Application Form/ Formulaire de demande

École Polytechnique de Montréal. Département de Génie Informatique et Génie Logiciel. Cours INF2610. Contrôle périodique.

Bitcoin : crypto-monnaie décentralisée ouverte et libre Mathématiques, algorithmes et méthode de confiance

DOCUMENTATION MODULE BLOCKCATEGORIESCUSTOM Module crée par Prestacrea - Version : 2.0

Quick Start Guide This guide is intended to get you started with Rational ClearCase or Rational ClearCase MultiSite.

Tolérance aux fautes-2 Serveurs à haute disponibilité

Noyau de concurrence par moniteur pour Java ou C# pour une autre sémantique plus fiable et plus performante

Derrière toi Une machine virtuelle!

CEG4566/CSI4541 Conception de systèmes temps réel

Introduction à la programmation concurrente

Initiation au HPC - Généralités

Introduction. René J. Chevance

3A-IIC - Parallélisme & Grid GRID : Définitions. GRID : Définitions. Stéphane Vialle. Stephane.Vialle@supelec.fr

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

IDENTITÉ DE L ÉTUDIANT / APPLICANT INFORMATION

Programmer des applications réparties

Backtracking asynchrone agile pour les problèmes de satisfaction de contraintes distribués

Cours 1 : La compilation

Contents Windows

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed.

Déployer des tablettes en classe de LVE: les points clés. Rennes, le 26 août 2014


4. Outils pour la synchronisation F. Boyer, Laboratoire Sardes

THÈSE. présentée à TÉLÉCOM PARISTECH. pour obtenir le grade de. DOCTEUR de TÉLÉCOM PARISTECH. Mention Informatique et Réseaux. par.

Processus! programme. DIMA, Systèmes Centralisés (Ph. Mauran) " Processus = suite d'actions = suite d'états obtenus = trace

Les Bases de Données et l Objet Introduction

Forthcoming Database

Logiciel Libre Cours 2 Fondements: Programmation

Qualité et ERP CLOUD & SECURITY (HACKING) Alireza MOKHTARI. 9/12/2014 Cloud & Security

Polar. Nouveautés Polar

Bienvenue au séminaire HP Service Anywhere Mardi 11 février 2014

Thank you for choosing the Mobile Broadband USB Stick. With your USB Stick, you can access a wireless network at high speed.

Programmation d Applications Concurrentes et Distribuées (INF431)

VMware vsphere 5 au sein du Datacenter Complément vidéo : La configuration et la sécurisation de l'esx

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

SCHOLARSHIP ANSTO FRENCH EMBASSY (SAFE) PROGRAM APPLICATION FORM

Master (filière Réseau) Parcours Recherche: Systèmes Informatiques et Réseaux (RTS)

Paxton. ins Net2 desktop reader USB

Formulaire d inscription (form also available in English) Mission commerciale en Floride. Coordonnées

Concept de machine virtuelle

Implémentation parallèle de certains algorithmes de fouille de données avec le framework MapReduce

Cours de Programmation 2

Gestion de la cohérence des données dans les systèmes distribués

Quick Setup Guide Guide de configuration rapide. Tablet Device SGPT12 Series Tablette électronique Série SGPT12

Génération de code binaire pour application multimedia : une approche au vol

Vers une approche Adaptative pour la Découverte et la Composition Dynamique des Services

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Consolidation. Grid Infrastructure avec la 11gR2

Threads. Threads. USTL routier 1

Exécutif temps réel Pierre-Yves Duval (cppm)

Un algorithme équitable d exclusion mutuelle tolérant les fautes

ISC Système d Information Architecture et Administration d un SGBD Compléments SQL

SugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

High Performance by Exploiting Information Locality through Reverse Computing. Mouad Bahi

WEB page builder and server for SCADA applications usable from a WEB navigator

Application de K-means à la définition du nombre de VM optimal dans un cloud

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

Probabilités. Rappel : trois exemples. Exemple 2 : On dispose d un dé truqué. On sait que : p(1) = p(2) =1/6 ; p(3) = 1/3 p(4) = p(5) =1/12

Règles et paramètres d'exploitation de Caparmor 2 au 11/12/2009. Pôle de Calcul Intensif pour la mer, 11 Decembre 2009

Introduction aux systèmes temps réel

Bases de Données Réparties Concepts et Techniques. Matthieu Exbrayat ULP Strasbourg - Décembre 2007

Chapitre 4 : Les mémoires

VCE La solution d'infrastructure convergée pour accélerer la modernisation de vos environnments Retour d'expérience client SOGECLAIR

SAINT-GOBAIN. DSI Groupe. Un outil ITSM pour renforcer la Gouvernance. V. Broussin 26 février 2013

Gestion mémoire et Représentation intermédiaire

DOCUMENTATION - FRANCAIS... 2

LOG4430 : Architecture et conception avancée

La révolution SaaS au service de la valorisation de la recherche

Examen Médian - 1 heure 30

Thomas Loubrieu (Ifremer) Small to Big Data Novembre 2013, Ifremer, Brest

Transcription:

Penser, modéliser et maîtriser le calcul Parallélisme asynchrone et calcul réparti Michel RAYNAL raynal@irisa.fr IRISA, Université de Rennes, France Le monde (est) distribué 1

Table des matières Le calcul concurrent/distribué Des modèles de calcul distribué De la calculabilité distribuée Le monde (est) distribué 2

Le calcul concurrent (asynchrone) Des processus (machines de Turing) asynchrones Une mémoire partagée : lecture et écriture atomiques Certificat de naissance : Co-operating Sequential Processes E.W. Dijkstra, Programming languages, Academic Press, pp. 43-112, 1965 Le monde (est) distribué 3

Pb fondamental : construire un objet concurrent Un objet accédé par des processus concurrents p1 pi pn Enqueue (v) r Dequeue () Le monde (est) distribué 4

Sequentiel vs Concurrent (1) SEQUENTIEL: Enq (a) Enq (c) Enq (b) Deq (a) Deq (c) CONCURRENT: p 1 Enq (a) Enq (b) Deq (a b c)? p 2 Enq (c) Deq (a b c)? Le monde (est) distribué 5

Le concept d atomicité Aussi appelé Linéarisabilité Propriété de sûreté C est ce qui permet de raisonner séquentiellement - Herlihy M.P. and Wing J.M., Linearizability: a Correctness Condition for Concurrent Objects. ACM Transactions on Programming Languages and Systems, 12(3):463-492, 1990 Le monde (est) distribué 6

Sequentiel vs Concurrent (2) p 1 Enq (a) Enq (b) Deq (a b c)? p 2 Enq (c) Deq (a b c)? Enq (a) Enq (b) Enq (c) Deq (b) Deq (a) Le monde (est) distribué 7

Sequentiel vs Concurrent (3) Enq (a) Enq (b) Deq (a b c)? p 1 Enq (c) Deq (a b c)? p 2 Enq (c) Enq (a) Enq (b) Deq (c) Deq (a) Le monde (est) distribué 8

Le calcul concurrent (classique) Problèmes: Exclusion mutuelle, etc. Propriétés de vivacité : (absence de) interblocage, famine Applications : allocation de resources, coordination Outil de base : verrou (sémaphore, moniteur, etc.) Le monde (est) distribué 9

Le calcul distribué (réparti) 1 Le calcul réparti apparaît lorsque Résoudre un problème en termes d entités (processus, agents, capteurs, pairs, acteurs, nœuds, processeurs, etc.), (aspect parallélisme) Dans un contexte où chaque entité : connaissance partielle des multiples paramètres mis en jeu dans le problème (aspect distribution) Certificat de naissance : Time, clocks and the ordering of events in a distributed system, Leslie Lamport, CACM, 21(7):558-565, 1978 Le monde (est) distribué 10

Le calcul distribué (réparti) 2 Un aphorisme célèbre (dû à Leslie Lamport) A distributed system is one in which the failure of a computer you didn t even know existed can render your own computer unusable Important : la notion de défaillance! Le calcul réparti : maîtriser l incertitude Le monde (est) distribué 11

L incertitude est créée par La multiplicité des lieux de contrôle Localité Asynchronisme Les fautes et défaillances Mobilité Capacité de calcul de chaque entité (e.g., batterie, bande passante, etc.) Dynamicité Etc., etc. Le monde (est) distribué 12

Modèles de calcul réparti Mémoire partagée vs passage de messages (Synchrone vs) Asynchrone Modèles de fautes Entités de calcul, entités de communication Fiable, Crash, Fautes byzantines Le monde (est) distribué 13

Calcul sans attente (wait-free) Tout processus qui ne crashe pas termine ses opérations quel que soit le comportement des autres processus Pas de verrou! Sans attente = absence de famine en dépit de crashs - Lamport L., Concurrent Reading and Writing. Communications of the ACM, 20(11):806-811, 1977 Herlihy M.P., Wait-Free Synchronization. ACM Transactions on Programming Languages and Systems, 13(1):124-149, 1991 Le monde (est) distribué 14

Que peut-on résoudre ainsi? Modèle comportement : asynchrone communication : lecture/ecriture atomique fautes : crash de processus Que peut-on résoudre? Beaucoup de problèmes (exemple : instantané) Malheureusement pas tous ( consensus number ) Le monde (est) distribué 15

Calcul d un instantané (snapshot) SM[1] SM[i] SM[n] update(v) par p i snapshot() par p j ( j) Le monde (est) distribué 16

Obstruction-free solution Champs : SM[i] = (SM[i]..val, SM[i].sn). operation update (v) sn i sn i + 1; SM[i] (v, sn i ). operation snapshot() while true do A i lecture asynchrone du tableau; B i lecture asynchrone du tableau; if ( j : A i [j].sn = B i [j].sn) then return ([A i [1].val,..., A i [n].val]) end if end while. Le monde (est) distribué 17

Instantané : exemple SM [1] A i [1].sn = a = SM [1].sn B i [1].sn = a SM [2] A i [2].sn = b B i [2].sn = b SM [3] A i [3].sn = c B i [3].sn = c SM [4] A i [4].sn = d B i [4].sn = d = SM [4].sn time line première lecture asynchrone deuxième lecture asynchrone point de linearisation point de l opération snapshot() Le monde (est) distribué 18

Solution sans attente Chaque update() doit aider les opérations snapshot() update 1 update 2 p j snap int p i snapshot() Le monde (est) distribué 19

Algorithme (1) Champs : SM[i] = (SM[i]..val, SM[i].sn, SM[i].help array). operation update (v): help array i snapshot(); sn i sn i + 1; SM[i] (v, sn i, help array i ). Le monde (est) distribué 20

Algorithme : operation snapshot() could help i ; while true do A i lecture asynchrone du tableau ; B i lecture asynchrone du tableau ; if ( j : A i [j].sn = B i [j].sn) then return (A i.val) else for j : 1 j n do if (A i [j].sn B i [j].sn) then if (j could help i ) then return (B i [j].help array) end if end while else end if end if end for could help i could help i {j} Le monde (est) distribué 21

Pourquoi ça marche p i snapshot() p j update() update() snapshot() help array p k update() update() snapshot() help array deux lectures séquentielles sans ećriture Le monde (est) distribué 22

LE problème fondamental un objet A défini par une spécification séquentielle Des objets X Problème : construire une implémentation sans attente de A à l aide de registres L/E et d objets X Sans attente (wait-free) = nombre de crashs Le monde (est) distribué 23

Notions d universalité Un objet est universel s il permet de répondre oui quel que soit le nombre de processus Résultat fondamental (Herlihy 1991): L objet consensus est un objet universel Notion de consensus number d un objet Le monde (est) distribué 24

L objet consensus Chaque entité (processus, capteurs, etc.) propose une valeur et les processus corrects doivent se mettre d accord sur la même valeur Propriété de sûreté : Validité : une valeur décidée est une valeur proposée Accord : Une seule valeur est décidée Propriété de vivacité (terminaison) : Tout processus qui ne crashe pas (stop définitif) décide Le monde (est) distribué 25

Consensus en mémoire partagée Lire/Ecrire Notion de consensus number d un objet: Nombre maximal de processus pour lesquels on sait résoudre le consensus avec un algorithme sans attente (wait-freedom) Notion d algorithme sans attente : Tout processus qui ne crashe pas doit terminer (décider) Sans attente = absence de famine en dépit de crash Le monde (est) distribué 26

Quelques objets de synchronisation (1) Test&Set (shared)= [prev shared; shared 1; return (prev)] Swap (local, shared)= [local shared] Le monde (est) distribué 27

Quelques objets de synchronisation (2) M to M Move (shared 1, shared 2 )= [shared 1 shared 2 ] Compare&Swap (shared, old, new)= [prev shared; if prev = old then shared new fi; return (prev)] La paire Load Linked, Store Conditional Variantes de LL/SC dans Alpha AXP (ldl l stl c), IBM Power PC (lwarx/stwcx), ARM (ldrex/strex) Une pile, une file, etc. Tout object défini par une spécification séquentielle Le monde (est) distribué 28

Numéro de consensus d un objet Objet NC Registre L/E 1 Test&Set, file, pile,... 2... 3, 4, etc. Compare&Swap, LL/SC, etc. + Impact sur les architectures multicœurs! Le monde (est) distribué 29

Pourquoi le consensus est fondamental (1) Le consensus permet de résoudre le non-détermisme créé par l effet combiné défaillances + asynchronisme Le monde (est) distribué 30

Modèle : asynchrone, passage de messages, crash Le consensus impossible, même si un seul processus peut être fautif faute : simple crash communications : mémoire partagée, messages consensus : binaire ou multivalué -Fischer M.J., Lynch N.A. and Paterson M.S., Impossibility of Distributed Consensus with One Faulty Process. Journal of the ACM, 32(2):374-382, 1985 - Loui M.C., and Abu-Amara H.H., Memory Requirements for Agreement Among Unreliable Asynchronous Processes. Par. and Distributed Computing: vol. 4 of Advances in Comp. Research, JAI Press, 4:163-183, 1987 Le monde (est) distribué 31

Systèmes à passage de messages : Que faire? Et entre synchrone et asynchrone? Frontière? Peut être résolu Ne peut être résolu Synchrone Asynchrone Le concept de détecteur de fautes (oracles) Notion de plus faible oracle pour un pb donné Le monde (est) distribué 32

L oracle le plus faible pour le consensus La classe Ω Chaque processus p i est pourvu d une variable locale (en lecture seule) leader i Il existe un processus correct p l et un instant τ après lequel, pour tout processus (non crashé) on a toujours leader i = l Noter : on caractérise des exécutions Le monde (est) distribué 33

Conclusion Algorithmes distribués = maîtriser l incertitude créée par l asynchronisme, les défaillances, etc. Durant les vingt dernières années: nombreux résultats fondamentaux (bornes inférieures, possibilité vs impossibilité), modèles précis définis, etc. Beaucoup reste à faire! Le monde (est) distribué 34

A propos de modèles Modèle de communication : mémoire vs messages Modèle de synchronie : du synchrone à l asynchrone Modèle de fautes : des crashs aux fautes byzantines Mobilité, dynamicité, etc. Le monde (est) distribué 35

Quelques références Attiya H. and Welch J., Distributed Computing: Fundamentals, Simulations and Advanced Topics, (2d Edition), Wiley-Interscience, 414 pages, 2004 Lynch N.A., Distributed Algorithms. (CA), 872 pages, 1996 Morgan Kaufmann Pub., San Francisco Raynal M., Communication and Agreement Abstractions for Fault-Tolerant Distributed Systems. Morgan & Claypool Publishers, to appear, 2010 Raynal M., Une introduction à l algorithmique distribuée des systèmes asynchrones. Encyclopédie Vuibert de l informatique et des systèmes d information, pp. 179-194, 2006 (ISBN 978-2-7117-4846-4) Taubenfeld G., Synchronization algorithms and and concurrent programming. Prentice-Hall, 423 pages, 2006 Le monde (est) distribué 36