65
Algorithmique Distribuée Problèmes et Algorithmes Fondamentaux Arnaud labourel http://pageperso.lif.univ-mrs.fr/˜arnaud.labourel Aix-Marseille Université 15 janvier 2014 Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 1 / 48

Algorithmique Distribuée - Problèmes et Algorithmes Fondamentauxpageperso.lif.univ-mrs.fr/~arnaud.labourel/AD2014/cours1.pdf · 2014. 3. 25. · Arnaud Labourel (AMU) Algorithmique

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • Algorithmique DistribuéeProblèmes et Algorithmes Fondamentaux

    Arnaud labourelhttp://pageperso.lif.univ-mrs.fr/˜arnaud.labourel

    Aix-Marseille Université

    15 janvier 2014

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 1 / 48

  • Problèmes et Algorithmes Fondamentaux

    Deux types de systèmes :

    Système parallèle : séparer un gros problème en petitsproblèmes indépendantsSystème distribué : interaction et coopération deprocessus indépendants en vue de réaliser une tâchedonnée

    Dans ce cours, on ne s’intéressera qu’aux systèmesdistribuées.

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 2 / 48

  • Algorithmique "classique"

    Processus

    Donnée

    Un processus qui exécute un algorithmeUne donnéeComplexité : nombre d’opérations/instructions

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 3 / 48

  • Trois types de modèles pourl’algorithmique distribuée

    Processus Donnée

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 4 / 48

  • Mémoire partagée

    Processus

    Donnée

    une donnéen processus qui exécutent le même algorithme etpeuvent lire/écrire dans la donnéecomplexité : nombre d’écriture/lecture

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 5 / 48

  • Agents mobiles

    Processus

    Donnée

    n donnéesk processus qui exécutent le même algorithme etpeuvent se déplacer dans le réseaucomplexité : nombre de déplacements

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 6 / 48

  • Passage de message

    Processus

    Donnée

    n donnéesn processus qui exécutent le même algorithme etpeuvent envoyer des messages à leur voisinscomplexité : nombre de messages

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 7 / 48

  • Quelques propriétés pour le modèle decommunication par passage de message

    Tout les processus exécutent le “même” algorithme.(l’état initial peut différer.)Chaque processus connait l’information locale (pasd’information globale). Ils doivent communiquer pourl’échange des informations.A chaque étape de l’algorithme, un nœud peut :envoyer des messages aux voisins, recevoir desmessages de voisins, et faire des calculs locaux.

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 8 / 48

  • Exemples Fondamentaux

    Les tâches distribuées se ramènent en général à une formed’accord distribué.

    Exemples (Définition informelle) :Election : un processus, et un seul, doit terminerdans l’état ELU (les autres sont non-ELU).Consensus : étant données des valeurs initiales pourchaque processus, ceux-ci doivent décider une, et uneseule, de ces valeurs.

    ... et de nombreuses variations.

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 9 / 48

  • Problème d’Election

    ELU

    ELUNON

    ELUNON

    ELUNON

    Pourquoi est-il important ? (aider à la coordination)Pourquoi est-il difficile à résoudre ? (symétries)Comment effectuer l’élection ?(utiliser des identifiants uniques, UID)

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 10 / 48

  • Consensus dans un réseau

    3 3 3

    3 3

    1 3 4

    5 7

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 11 / 48

  • Les Algorithmes

    Pour quel(s) modèle(s) de calcul distribué ?Avec quelle complexité ?Y-a-t-il toujours une solution ?Non=⇒ importance de déterminer ce qui estpossible/impossible en fonction des caractéristiquesdu système

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 12 / 48

  • Les Modèles Différents

    Aspects Dynamiques :synchrone : tous les processus fonctionnent à lamême vitesseasynchrone : les processus ont des vitessesdifférentes qui peuvent varier dans le tempspartiellement synchrone : les processusfonctionnent à la même vitesse mais ne sont pasactifs à chaque rondetypes de pannes

    I pannes définitivesI pannes transitoiresI pannes byzantines

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 13 / 48

  • Les Modèles Différents

    Aspects Statiquesinformation structurelle :

    I n° unique =⇒ identitésI connexions orientées ou non

    connaissance structurelle :I famille de graphes (arbres, anneaux, planaires, . . .)

    =⇒ domaineI borne sur la tailleI borne sur le diamètre

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 14 / 48

  • Les Modèles Différents

    Détection de la Terminaisonimplicite (stabilisation) : chaque processus ne sait pasquand il a décidé mais l’algorithme converge

    faiblement locale : chaque processus sait quand il a décidéet participe encore à l’algorithme une fois qu’il a décidé

    locale : chaque processus sait quand il a décidé et neparticipe plus à l’algorithme une fois qu’il a décidé

    globale : un processus sait quand tous les processus ontdécidés

    NB Quand un processus termine en donnant une valeur, on dit qu’ildécide.

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 15 / 48

  • Exemples des Problèmes

    Wakeup (Réveiller tous les processus)Broadcast (Diffusion d’information)Gossip (Tous les processus communiquent à tous lesautres processus)Construction d’arbre couvrantElection

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 16 / 48

  • La Communication

    Communication point à pointChaque nœud peut choisir une (ou plusieurs) arêteincidente pour envoyer un message.Le receveur sait de quelle arête le message est arrivé.Taille de messages limitée (généralementlogarithmique en n)But : Réduire la quantité de communication (lecommunication coute plus que le calcul local !)

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 17 / 48

  • A Propos de la Complexité

    Comment comparer les performances ?

    Complexité en “espace” : nombre de messagesComplexité en “espace” : nombre de bits transmisComplexité en “temps”

    I synchrone : nombre de rondesI asynchrone : parfois nombre de “rondes” (exécutions

    optimistes)

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 18 / 48

  • Problème de l’Election

    SpécificationEtant donné un réseau de noeud initialement dans l’étatInconnu, l’algorithme termine avec les conditionssuivantes :

    Election : Un noeud et un seul termine dans l’étatELU

    Variante (terminaison explicite) Tous les autresnoeuds savent que l’algorithme est terminé (et qu’ilssont non-ELU)

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 19 / 48

  • Un Anneau de Processus

    P1

    P2

    P3

    P4

    P5

    P6

    envoi de messages

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 20 / 48

  • Systèmes Synchrones

    DéfinitionUn système est synchrone si il existe une horloge globalepartagée par tous les processus du système.

    Envoi de message simultané, les messages sont reçusdurant le même round.

    Exemples :Mémoire partagée : PRAMautomate cellulaireréseaux avec un timeout

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 21 / 48

  • Processus Anonymes

    ThéorèmeDans un anneau de processus synchrones anonymes (étatsde départ identiques), il est impossible d’élire.

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 22 / 48

  • Preuve d’impossibilité

    Pi : les agents ont tous le même état au début de la ronde i .

    P1 est vrai car les agents sont anonymes.

    Supposons que Pi est vraie. Dans ce cas tous les agents vonteffectuer les mêmes actions car il sont dans le même état. Il vontdonc tous envoyer les mêmes messages à leur voisins de gauche etde droite.

    Par conséquent ils vont tous recevoir les mêmes messages des deuxcotés et ils vont tous passer au même état. Pi+1 est donc vraie.

    Par récurrence, à chaque ronde, tous les processus sont dans lemême état (symétrie des processus).

    Supposons qu’un algorithme d’élection existe. Si l’un des processusest ELU alors tous les autres le sont aussi.

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 23 / 48

  • Processus Avec Identités

    On suppose désormais que chaque processus possède unidentifiant unique (UID).

    Algorithme d’élection LCRPour un anneau unidirectionnel avec UID, sansconnaissance de la taille.

    Unidirectionnel : envoi de message possible que sur un seulvoisin (circuit)

    LCR pour Le Lann, Chang et Roberts

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 24 / 48

  • Algorithme LCR

    e t a t = inconnu ;u = u id ;do {

    send ( u ) ;v = r e c e i v e ( ) ;i f ( v > u id )

    u = v ;i f ( v < u id )

    u = n u l l ;i f ( v = = u id )

    e t a t = e l u ;} wh i l e ( e t a t = = inconnu ) ;

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 25 / 48

  • Execution de LCR

    4 2

    1

    3

    u=4

    u=1

    u=2

    u=3Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

  • Execution de LCR

    4 2

    1

    3

    4 1

    23

    u=4

    u=1

    u=2

    u=3Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

  • Execution de LCR

    4 2

    1

    3

    u=null

    u=4

    u=null

    u=nullArnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

  • Execution de LCR

    4 2

    1

    3

    null 4

    nullnull

    u=null

    u=4

    u=null

    u=nullArnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

  • Execution de LCR

    4 2

    1

    3

    u=null

    u=null

    u=4

    u=nullArnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

  • Execution de LCR

    4 2

    1

    3

    null null

    4null

    u=null

    u=null

    u=4

    u=nullArnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

  • Execution de LCR

    4 2

    1

    3

    u=null

    u=null

    u=null

    u=4Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

  • Execution de LCR

    4 2

    1

    3

    u=null

    u=null

    u=null

    u=4

    null null

    null4

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

  • Execution de LCR

    4 2

    1

    3

    u=null

    u=null

    u=null

    u=null

    ELU

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 26 / 48

  • Preuve de Correction de LCR

    PropriétéLe processus d’UID maximal est dans l’état ELU à lan-ième ronde et c’est le seul.

    Preuve On note imax l’indice du processus d’UIDmaximal.

    Pour toute ronde r avec 0 ≤ r ≤ n − 1,uimax+r mod n = UIDimaxAprès n rondes, etatimax =ELU,

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 27 / 48

  • Terminaison de LCR

    Ainsi présenté, l’algorithme ne se termine pas pour lesprocessus non-ELUs.⇐= ils sont bloqués dans une boucle infinie d’envoi et deréception de message vide.

    Chaque processus qui voit passer un UID plus grandque le sien peut se mettre dans l’etat non-ELU (maisne sait pas mieux quand s’arrêter)Le processus ELU peut envoyer un message CestFinipour indiquer à chaque autre noeud la terminaison

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 28 / 48

  • Complexité de LCR

    sans détection de la terminaison :I en temps : n rondesI en espace : O(n2)

    avec détection de la terminaison locale :I en temps : 2n rondesI en espace : O(n2)

    Pire des cas quand les UIDs sont en ordre décroissant.

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 29 / 48

  • Élection en n log n messages

    Un algorithme plus efficace existe.On considère l’anneau bidirectionnel.On définit le voisinage de taille d d’un processus notéVd(u) comme étant tous les processus à distance ≤ d deu (d processus à droites et d à gauche)

    u

    V2(u)

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 30 / 48

  • Élection en n log n messages : principe

    PrincipeA la phase k , le processus se compare à ses voisins actifs àdistance 2k : V2k (u). S’il a le plus grand identifiant, ilreste actif. Sinon il devient passif et ne compte plus pourles comparaisons suivantes

    Phase 0 : on se compare aux voisins à distance 1Phase 1 : on se compare aux voisins à distance 2Phase 2 : on se compare aux voisins à distance 4Phase 3 : on se compare aux voisins à distance 8

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 31 / 48

  • Élection en n log n messages : code

    To initiate an election (phase 0) :send(ELECTION< my_id , 0, 0 >) to left and right ;Upon receiving a message ELECTION< j , k, d > from left (right) :if ((j > my_id) ∧ (d ≤ 2k)) then

    send(ELECTION< j , k, d + 1 >) to right (left) ;if ((j > my_id) ∧ (d = 2k)) then

    send(REPLY< j , k >) to left (right) ;if (my_id = j) then announce itself as leader ;Upon receiving a message REPLY< j , k > from left (right) :if (my_id 6= j) then

    send(REPLY< j , k >) to right (left) ;else

    if (already received REPLY< j , k >)

    send(ELECTION< j , k + 1, 1 >) to left and right ;

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 32 / 48

  • Exemple d’exécution

    18

    3

    57

    4

    6

    2

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

  • Exemple d’exécution

    1

    8

    3

    57

    4

    6

    2

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

  • Exemple d’exécution

    1

    8

    3

    57

    4

    6

    2

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

  • Exemple d’exécution

    18

    3

    57

    4

    6

    2

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

  • Exemple d’exécution

    1

    8

    3

    57

    4

    6

    2

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

  • Exemple d’exécution

    1

    8

    3

    57

    4

    6

    2

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

  • Exemple d’exécution

    18

    3

    57

    4

    6

    2

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

  • Exemple d’exécution

    1

    8

    3

    57

    4

    6

    2

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

  • Exemple d’exécution

    1

    8

    3

    57

    4

    6

    2

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

  • Exemple d’exécution

    18 est élu

    3

    57

    4

    6

    2

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 33 / 48

  • Élection en n log n messages : analyse

    LemmeA la phase k au plus 4.2k messages sont envoyés pour uncandidat actif.

    LemmePour chaque k ≥ 1, le nombre de processeurs actifs est au⌊ n

    2k−1+1

    ⌋.

    Preuve : La distance minimum entre deux processusactifs à la fin de la phase k − 1 est 2k−1 + 1.

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 34 / 48

  • Élection en n log n messages : analyse

    Le nombre total de phases avant élection estdlog ne+ 1.Le nombre total de messages est :

    4n.20︸ ︷︷ ︸phase 0

    +

    dlog ne+1∑k=1

    ⌊n

    2k−1 + 1

    ⌋(4.2k)︸ ︷︷ ︸

    Phase 1 à dlog ne+ 1

    =

    dlog ne+1∑k=1

    O(n)

    = O(n log n)

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 35 / 48

  • Dans un Réseau Quelconque

    Comment élire dans un réseau quelconque avec UIDs etconnaissance d’une borne ∆ sur le diamètre ?

    =⇒Algorithme d’Inondation Chaque noeudcommence par diffuser son UID, puis le maximum desUIDs reçus. L’algorithme dure ∆ rondes.

    Si l’UID maximal est celui du processus alors il semet dans l’état ELUSinon, le processus se met dans l’état non-ELU

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 36 / 48

  • Correction de l’Algorithme d’Inondation

    La correction repose sur l’invariant suivant :Après r rondes, si d(i , imax) ≤ r alors

    max{UID reçu en i} = UIDimax.

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 37 / 48

  • Terminaison de l’Algorithme d’Inondation

    Tous les processus ont terminé au bout de ∆ rondes. (etsont soit dans l’état ELU, soit dans l’état non-ELU)

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 38 / 48

  • Complexité de l’Algorithme d’Inondation

    En temps : ∆ rondesEn espace : ∆ × nb d’arêtes

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 39 / 48

  • Pour Conclure Provisoirement

    Il nous a fallu la connaissance d’une borne sur lediamètre pour élire dans un réseau quelconqueAvec LCR, il est possible d’élire dans un anneauorienté sans aucune connaissance structurelleEst-il possible d’élire dans un réseau synchronequelconque avec UID, sans autre connaissance ouinformation structurelles ?

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 40 / 48

  • Problème du Consensus

    SpécificationEtant donnés des processus avec une valeur initialequelconque,

    Accord Tous les processus qui décident une valeurdécident la même valeur.Validité Si tous les processus ont w comme valeurinitiale, alors c’est la valeur décidée.Terminaison Tous les processus (non défaillants)décident.

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 41 / 48

  • Pas de Défaillances

    Il suffit d’échanger les valeurs initiales et d’en choisir unepar une méthode déterministe (maximum par exemple).

    =⇒ défaillancesde liensde processusbyzantines

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 42 / 48

  • L’histoire des deux générauxDeux armées rouges surplombent une armée bleue de partet d’autre d’une vallée. Les forces en présence sont tellesque si une seule armée rouge attaque, elle perdra labataille. Par contre, si les deux attaquent simultanément,alors c’est l’armée bleue qui perd.Les armées rouges communiquent en envoyant desmessagers qui doivent traverser la vallée et peuvent doncêtre capturés par l’armée bleue.Comment les généraux rouges peuvent-ils se mettred’accord pour lancer éventuellement l’attaque ourenoncer ?

    Il n’y a pas de solution (déterministe)Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 43 / 48

  • Les deux généraux de manière plus formelle

    Le problèmeOn considère deux processus A et B .Le processus A a un registre d’entrée IA égal à 0 (pas d’attaque) ou1 (attaque).Les deux processus A et B ont chacun un registre de sortie OA etOB initialisé à ⊥.Le but des deux processus est d’écrire la valeur IA dans leur registrede sortie (OA ou OB). Il n’ont le droit qu’à une écriture (une foisdécidé il est impossible de changer d’avis).Le système est synchrone mais des messages peuvent se perdre.

    ThéorèmeLe problème des deux généraux n’a aucune solution déterministe.

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 44 / 48

  • Preuve d’mpossibilité I

    Preuve :On peut observer que dans une exécution ou les générauxdécident 1 (cas IA = 1), au moins un message doit êtrereçu. En effet, dans le cas contraire, B ne peut pasdistinguer le cas où IA = 1 de celui où IA = 0. Le lien doitdonc laisser passer au moins un message avant de tomberen panne.

    Supposons par contradiction qu’il existe un algorithmerésolvant le problème. Parmi toutes les exécutions danslesquelles les deux processus décident 1, prenonsl’exécution E la plus plus courte (en nombre de messagesreçus) qui est de longueur k ≥ 1.

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 45 / 48

  • Preuve d’mpossibilité IISans perte de généralité, on peut supposer que le dernier(k-ième) message reçu est de A vers B . On note t lenuméro de ronde pour lequel A et B ont décidé 1.

    On considère maintenant une execution E ′ qui estidentique à E sauf que le k-ième message est perdu.

    A

    B

    A

    B

    Exécution E

    Exécution E ′

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 46 / 48

  • Preuve d’mpossibilité III

    Le général A ne peut différencier E de E ′. Puisque Aattaque dans E il doit aussi attaquer dans E ′. La valeurOA est donc fixée à la ronde t dans E ′.

    Puisque A attaque dans E ′, B doit aussi attaquer dans E ′.

    Si k − 1 > 0 alors l’exécution E ′ est plus courte que E etcontient au moins un message. Cela contredit le fait que Eest l’exécution la plus courte qui décide 1.

    Si k − 1 = 0 alors il n’y a pas de message reçu dans E ′ etmalgré cela A et B décident 1. Contradiction avec notreremarque initiale.

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 47 / 48

  • Modèles différents

    QuestionEt si on ne peut perdre qu’un seul message à la fois, oubien si un seul des deux processus peut perdre sesmessages ?

    Arnaud Labourel (AMU) Algorithmique Distribuée 15 janvier 2014 48 / 48

    IntroductionElection de leaderProblème du consensus