Algorithmes Parallèles et Distribués
2. Algorithmes distribués
Franck Butelle
LIPN, Université Paris 13 Formation Ingénieurs SupGalilée Info 3
11/2021
(INFO 3) APD 2–Algo distribués 2021 1 / 37
Plan
1 Introduction 3
2 Modélisation et hypothèses 5
3 Notion d’algorithme distribué 15
4 Rappels de complexité : notations de Landau 25
5 Algorithmes distribués classiques (1ère partie) 28
(INFO 3) APD 2–Algo distribués 2021 2 / 37
Introduction
Plan de la section
1 Introduction 3
2 Modélisation et hypothèses 5
3 Notion d’algorithme distribué 15
4 Rappels de complexité : notations de Landau 25
5 Algorithmes distribués classiques (1ère partie) 28
Introduction
Introduction
Définition Informelle
Un algorithme distribué est spécifié par rapport à des
sites/processus/nœuds reliés par un réseau physique, ces nœuds sont dits faiblement couplés.
Remarques
Les algorithmes distribués sont généralement conçus par échange de messages et dans le modèle SPMD.
Un système client/serveur n’est pas considéré comme un système distribué.
Modélisation et hypothèses
Plan de la section
1 Introduction 3
2 Modélisation et hypothèses 5
Système distribué 6
Petit lexique de théorie des graphes 7
Modèle de réseau point-à-point 9
Processus 10
Modèles de réseaux 11
Propriétés du système de communication 12
Réseaux synchrones et asynchrones 14
3 Notion d’algorithme distribué 15
4 Rappels de complexité : notations de Landau 25
5 Algorithmes distribués classiques (1ère partie) 28
(INFO 3) APD 2–Algo distribués 2021 5 / 37
Modélisation et hypothèses Système distribué
Modélisation
Définition
Un système distribuéS est une structure logicielle et matérielle distribuée en un réseau point-à-point asynchrone d’entités séquentielles
communicantes.
Réseau d’interconnexion←→ sites + système de communication GrapheG=(E,V), connexe, simple et en général symétrique.
V : ens. des entités (sommets, sites, processus) deS;
E⊂V2 : modélise les communications (arêtes, canaux, liens).
|V| =n : nbre de processus/sites du réseau (ordrede G).
|E| =m : nbre de canaux de communication (taillede G).
Chaque site de S possède une mémoire locale non partagéede capacité bornée et au moins 1 proc.
(INFO 3) APD 2–Algo distribués 2021 6 / 37
Modélisation et hypothèses Petit lexique de théorie des graphes
Petit lexique de théorie des graphes
Grapheorienté: arcs et non arêtes
Connexe: il existe au moins un chemin entre toute paire de nœuds Complet: il existe une arête entre toute paire de nœuds
Simple: pas d’arête/arc double ni d’arête/arc dex àx (boucle).
Arbre: graphe connexe sans cycle.
Degré d’un sommet : nombre d’arêtes liées à ce sommet
Distanceentre deux sommets : la longueur du plus court chemin entre ces sommets en nbre d’arêtes.
Diamètre d’un graphe : distance maximale entre deux sommets Graphe valué ou pondéré : ajout d’une fonction de valuation en général sur les arêtes
Distance dans un graphe valué : somme des poids des arêtes (affecte aussi la notion de diamètre)
Nous ne considérerons que des graphes simples connexes, souvent non orientés.
Modélisation et hypothèses Petit lexique de théorie des graphes
Modélisation suite
Les sites de S communiquent uniquement par messages : S est un modèle asynchrone à transmission de messages (Asynchronous Message-Passing Mo- del)
l’échange de message est le coût dominant
toute entité non fautive deS peut continuer à fonctionner indépendamment
Chaque site est identifié par un id propre ∈I. I est muni d’un ordre total.
pas d’horloge globaleou variableou configuration globale
Modélisation et hypothèses Modèle de réseau point-à-point
Modélisation réseau
Modèle de réseau point-à-point :
Orientation locale : tout site peut distinguer ses ports d’E/S Identités des voisins inconnues
Communication sans perte de message : en l’absence de défaillance, tout mesg est reçu au bout d’un temps fininon borné sans modif.
La taille des messages est bornée≤f(n,log2(Idmax))
(INFO 3) APD 2–Algo distribués 2021 9 / 37
Modélisation et hypothèses Processus
Modélisation des sites/processus
Dans un système distribuéS tous les sites sont symétriques Symétrie : les sites jouent tous le même rôle
Symétrie totale : si pas d’identité : absolument indiscernables Mais tous les sites n’exécutent pas forcément tjrs la même action, ni simultanément, ni instantanément.
Pb classique de l’algo distribuée : briser la symétrie en donnant à l’un d’eux un privilège.
Problème de l’exclusion mutuelle : lecteurs/rédacteurs, producteur/consommateur, dîner des philosophes, etc.
Problème de l’élection : un site unique deS doit être élu les autres dans l’état battu.
Ces pbs n’ont de sens que dans un système suffisamment fiable...
(INFO 3) APD 2–Algo distribués 2021 10 / 37
Modélisation et hypothèses Modèles de réseaux
Modèles de réseaux
Réseaux centralisés: un seul et unique «élu» / les autres sont
«battus»
Ï Un système clients/serveur utilise un réseau centralisé.
Réseaux avec identités: modèle standard : identités distinctes. Un site connaît son identité mais pas celles des autres.
Réseaux anonymes: Sites indiscernables (symétrie totale).
Ï "un ou quelques initiateurs identifiés : symétrie brisée :réseau
centralisé anonyme
Légende pour les prochaines diapos : modèle standard : valeurs du modèle standard.
Modélisation et hypothèses Propriétés du système de communication
Hypothèses sur les propriétés du système de communication
G=(V,E) est connexe délais d’acheminement
finis et non bornés: système asynchrone
x Au contraire : délais d’acheminement à délais bornés : système ABD :
∃τt.q. tous les délais sont inf. àτ(devient une «unité de temps»).
Tout mesg envoyé à un site est placé dans sa file d’attente.
L’ordonnanceur du réseau permet aux sites de
traiter leur file d’attente en un délai fini.
à chaque ligne de communication est associé untampon de taille finie non bornée
Les messages sont traités dans leur ordre d’arrivée (si simultanés alors ordre arbitraire)
L’ordre de réception est égal à l’ordre d’émission (pas de déséquencement : «fifo»)
x Au contraire : ordre arrivée peut être différent (non «fifo»)
Modélisation et hypothèses Propriétés du système de communication
Hypothèses sur les propriétés (suite)
Trois modes de transmission peuvent être utilisés : «simplex»
(unidirectionnel), «half-duplex» (bidirectionnel à l’alternat), ou
«full-duplex» (bidirectionnel).
Aucun message n’est créé par le système de routage Pas de duplication de message
x Au contraire : tout mesg peut être dupliqué lors de sa transmission Transmissions sans altération ni modification.
Le début d’une exécution d’un algo distri. est enclenché parl’éveil spontanéd’un
sous-ens. qcq non vide de V: le(s) initiateur(s). Dans un réseau non anonyme, les seules infos init. d’un site sont
son identité et la distinction de ses portes d’E/S.
(INFO 3) APD 2–Algo distribués 2021 13 / 37
Modélisation et hypothèses Réseaux synchrones et asynchrones
Réseaux synchrones et asynchrones
Chaque site est doté d’une «horloge physique» locale
Ï Asynchrones si on ne fait rien.
les horloges sont dites synchrones si elles sont incr. en même temps.
Ï En l’absence de défaillance, tout mesg envoyé à la datet est reçu (et traité) par un voisin à la datet+1 (temps local de l’émetteur).
Ï Lasynchronicité totaleest obtenue si les horloges sont synchrones et qu’elles donnent la même valeur.
(INFO 3) APD 2–Algo distribués 2021 14 / 37
Notion d’algorithme distribué
Plan de la section
1 Introduction 3
2 Modélisation et hypothèses 5
3 Notion d’algorithme distribué 15
Définition 16
Sûreté et Vivacité 17
Initiateurs 18
Actif/Passif 19
Terminaison 20
Algorithmes distribués synchrones 22
complexité temporelle 23
Complexité en nbre de message échangés 24
4 Rappels de complexité : notations de Landau 25
5 Algorithmes distribués classiques (1ère partie) 28
Notion d’algorithme distribué Définition
Notion d’algorithme distribué
Définition
Unalgorithme distribué exécuté surS est un système de transitions A=(C,→,I).
C : ens. des configurations deS.→⊆C×C : une relation binaire de transition et I⊂C : sous-ens. des conf. initiales deS.
Définition
Vu du point de vue du siteP de S, un algorithme distribué est aussi un système de transitions basé sur les évt : calcul local, envoi, réception de mesg.
(S,A)est une collection de psséquentielscommuniquants (indép. de toute architecture et de tout language de programmation).
Notion d’algorithme distribué Sûreté et Vivacité
Sûreté et Vivacité
Alpern et Schneider - 1985
sûreté(safety) : un événement indésirable n’arrivera jamais
Ï violation de l’exclusion mutuelle
Ï incohérence dans les données
Ï . . .
vivacité(liveness) : un événement désirable finira par arriver
Ï un message sera délivré à son destinataire
Ï une ressource demandée sera rendue disponible
Ï un algorithme se termine (indécidable dans le cas général. . .) La vivacité est plus difficile à établir que la sûreté.
(INFO 3) APD 2–Algo distribués 2021 17 / 37
Notion d’algorithme distribué Initiateurs
Initiateurs
Un siteinitiateurdémarre de manière spontanée :
Ï il passe dans l’état actif.
Un site non initiateur est initialement inactif.
Ï A la réception d’un premier mesg, il passe dans l’état actif.
Un algo. distribué est enclenché parp initiateurs indépendants (1≤p≤n), simultanément ou non.
Unalgo. centraliséest un algo. qui nécessitep=1pour toute exécution.
(INFO 3) APD 2–Algo distribués 2021 18 / 37
Notion d’algorithme distribué Actif/Passif
Actif/Passif
Un site est soit dans l’état actif soit dans l’état passif.
Seuls des sites actifs peuvent envoyer des mesgs d’activation Un site peut passer de l’état actif à passif à tout instant
Un site ne peut passer de l’état passif à actif qu’à la réception d’un message
Si tous les sites sont passifs et qu’aucun mesg ne circule plus,S a atteint une configuration stable, il est dit «quiescent» :
terminaison ou inter-blocage global.
Notion d’algorithme distribué Terminaison
Terminaison
Définition
Un algo. distribué setermine par processus (explicitement) lorsque pour toute exéc. tous les sites deS atteignent un état stable quiescent : terminaison classique avec détection de terminaison.
A partir d’une certaine «date», tous les sites savent que l’algo est terminé ou en phase de terminaison.
Définition
La terminaison par message (implicite): il n’y a plus de message en circulation. L’algo. est dit alorssans détection de terminaison.
"Il existe des algos sans terminaison.
Notion d’algorithme distribué Terminaison
Algo. guidé par réception de mesg.
Hyp. classique : à part pour le 1er message (activation) un site ne peut effectuer une action qu’à la réception de mesg : il est dit«message driven».
Théorème
Soit un syst. distribué S et deux algos distribués sur S : un algo quelconque A et un algoA0 message-driven. Notons CA(n) etCA0(n) le nbre de
messages échangés resp. par AetA0, on a CA(n)≥CA0(n).
Un algo. distri. synchrone guidé par message est dit «Time and Message driven».
(INFO 3) APD 2–Algo distribués 2021 21 / 37
Notion d’algorithme distribué Algorithmes distribués synchrones
Algorithmes distribués synchrones
Hypothèses classiques pour un environnement synchrone :
1 Chaque site enclenche une exécution sur une «pulsation», les pulsations sont numérotées.
2 On notera sur_pulsation(num)la primitive concernée, le code correspondant doit être terminé avant pulsation suivante.
3 Dans une primitive sur_pulsation(num), un site émet au plus un mesg.
4 Un mesg émis dans la pulsation p est reçu et traité après l’exéc. de sur_pulsation(p) et avantp+1.
5 Il n’y a pas d’envoi de mesg dans sur_reception
(INFO 3) APD 2–Algo distribués 2021 22 / 37
Notion d’algorithme distribué complexité temporelle
Complexité temporelle d’un algo. distribué asynchrone
Solution 1 :
exécution de l’algo sur un système distribué synchrone : complexité en nbre d’étapes.
Solution 2 (préférable)
Longueur de la plus longue chaîne de dépendance causale : SiAalorsB, SiB alorsC,. . .
Notion d’algorithme distribué Complexité en nbre de message échangés
Complexité en nbre de message échangés
Les calculs locaux seront considérés comme négligeables par rapport au temps de transmission des messages :
les messages sont la composante fondamentaled’un algo distribué il faut compter le nbre de messages échangés voir le nbre de bits échangés si mesgs de tailles quelconques
Rappels de complexité : notations de Landau
Plan de la section
1 Introduction 3
2 Modélisation et hypothèses 5
3 Notion d’algorithme distribué 15
4 Rappels de complexité : notations de Landau 25
5 Algorithmes distribués classiques (1ère partie) 28
(INFO 3) APD 2–Algo distribués 2021 25 / 37
Rappels de complexité : notations de Landau
Rappels de complexité : Notations de Landau
Soit une fonctionf(n), on cherche à donner un ordre de grandeur à cette fonction quandn→ +∞(N,C,C0 etC1 sont des constantes strict. positives):
f(n)∈O(g(n)) « Grand O »
∃C,N,∀n>N,|f(n)| ≤C.|g(n)|, g est un majorant def à une constante près.
f(n)∈Ω(g(n)) « Grand Oméga »
∃C,N,∀n>N,|f(n)| ≥C.|g(n)|, g est un minorant def à une cste près.
f(n)∈Θ(g(n)) « Grand Thêta »
∃C0,C1,N,∀n>N,C0.|g(n)| ≤f(n)≤C1.|g(n)|, f est «soumise» à g Exemple
Sif(n)=n2+nlog2(n)alors f(n) est enO(n3),O(n2),Ω(nlog(n)),Θ(n2).
(INFO 3) APD 2–Algo distribués 2021 26 / 37
Rappels de complexité : notations de Landau
Rappels sur les sommes de suites
Suite arithmétique :
Un+1=Un+r;Un=U0+nr;
n X
i=0
Ui=(n+1)U0+Un 2 Cas particulier :U0=0 ;r=1 ;
n X
i=0Ui=1+2+ · · · +n=(n+1)n 2 Suite géométrique(q6=1) :
Un+1=q×Un;Un=U0qn;
n X i=0
Ui=U01−qn+1 1−q Cas particulier :U0=1 ;q=2 ;
n X
i=0
Ui=1+2+4+ · · · +2n=2n+1−1 Série: généralisation de la notion de somme finie :
+∞X
i=02−i=2 en effet :
n X
i=01/2i=1−(1/2)n+1
1−1/2 =2−(1/2)n
Algorithmes distribués classiques (1ère partie)
Plan de la section
1 Introduction 3
2 Modélisation et hypothèses 5
3 Notion d’algorithme distribué 15
4 Rappels de complexité : notations de Landau 25
5 Algorithmes distribués classiques (1ère partie) 28
Éveil distribué par inondation 29
Éveil dans des réseaux particuliers 31
Algorithme traversant 32
Algorithmes distribués classiques (1ère partie) Éveil distribué par inondation
Éveil distribué
Hyp. : Graphe connexe quelconque, liens FIFO.
Problème :(Wake-up problem) éveiller l’ensemble des sites à partir d’un sous-ensemble.
Idée : inonder le réseau. Un non initiateur continue la diffusion à tous sauf à celui qui la réveillé.
Eveil:siest_initiateuralors
envoie<éveil>à tous les voisins actif←vrai;
finsi
sur_receptionde<éveil>dev:
sinon actifalors
envoyer<éveil>à tous les voisins saufv.
actif←vrai;
finsi
/∗ Terminaison par .... ? ∗/
Complexité en messagessiun seul initiateuretle graphe est un arbre ? Complexité en messagessik≤ninitiateursetle graphe est un arbre ?
(INFO 3) APD 2–Algo distribués 2021 29 / 37
Algorithmes distribués classiques (1ère partie) Éveil distribué par inondation
Complexités de l’éveil distribué
Graphe quelconque (mais connexe)
nbre de messages : 2mmessages
complexité en temps : O(D) messages (D est le diamètre du graphe) Optimal en temps et en messages
(INFO 3) APD 2–Algo distribués 2021 30 / 37
Algorithmes distribués classiques (1ère partie) Éveil dans des réseaux particuliers
Éveil dans des réseaux particuliers
Dans unarbrepar inondation :
Ï 1 initiateur :n−1 messages
Ï tous initiateurs : 2(n−1)messages.
Ï Sik initiateurs :n+k−2 messages.
Dans ungraphe complet, par inondation :O(n2) messages. Il existe un algo (d’élection) permettant d’obtenir O(nlogn)messages.
Algorithmes distribués classiques (1ère partie) Algorithme traversant
Parcours en profondeur d’abord : DFS1
Depth First Search
Hyp. : Un seul initiateur.
Pb.: Tous les sites doivent être visités : algo dittraversant.
Méthode:
lors de la première visite, un site doit se rappeler de l’émetteur, créer la liste des autres voisins à parcourir, leur envoyer le message
«séquentiellement», attendre la réponse de chacun avant de continuer.
Si déjà visité et réception du message : réponse immédiate
Algorithmes distribués classiques (1ère partie) Algorithme traversant
Algo DFS1
Eveil:siest_initiateuralors
marqué←vrai; nonvisités←Voisins; parent←−1; visite() finsi
sur_receptionde<dfs>dey:
simarqué = vraialors
nonvisités←nonvisités −{y};envoyer<back>ày.
sinon/∗ visité pour la première fois ∗/
marqué←vrai; parent←y; nonvisités←Voisins−{y}; visite();
finsi
sur_receptionde<back>dey:
visite();
procedurevisite() : sinonvisités6=;alors
x←premier(nonvisités); nonvisités←nonvisités −{x}; envoyer<dfs>àx
sinon/∗ Plus de voisins à visiter on le signale et on s’arrete ∗/
siparent>0alorsenvoyer<back>à parent terminaison
finsi
(INFO 3) APD 2–Algo distribués 2021 33 / 37
Algorithmes distribués classiques (1ère partie) Algorithme traversant
Complexité algo traversant DFS1
Exactement 2m messages échangés (optimal)
2m unités de temps car algo se déroule séquentiellement ! (non optimal Ω(n))
Fonctionne même sans l’hypothèse d’identités distinctes Peut-on faire mieux ?
(INFO 3) APD 2–Algo distribués 2021 34 / 37
Algorithmes distribués classiques (1ère partie) Algorithme traversant
Accélérer le traversant
Pb. avec le traversant : les sites doivent être visités séquentiellement. Mais : On peut éviter les messages qui déclencheront des mesgs<back>:
Ï sur réception de<dfs>faire une diffusion d’un mesg.<visité> à tous ses voisins (sauf parent).
Ï ils vont répondre par<ack>
Ï donc on sait qui est visité ou pas : on n’envoie qu’à ceux non visités : O(n)en temps ; surcoût en messages enO(m).
Algorithmes distribués classiques (1ère partie) Algorithme traversant
DFS1 dans des réseaux particuliers
si les sites connaissent la topologie
graphe enanneau : algo : l’initiateur choisit un sens et le<dfs> est propagé toujours dans ce sens jusqu’à revenir à l’initiateur
Ï nmessages,nunités de temps.
graphe enarbre: 2n−2 messages et 2n−2 unités de temps. Bonus : le parcours donne un anneau virtuel.
graphe complet: algo : l’initiateur envoie séquentiellement à tous ses voisins qui se contentent de renvoyer un<back>
Ï 2(n−1)messages et 2(n−1)unités de temps.
Algorithmes distribués classiques (1ère partie) Algorithme traversant
Conclusions sur le traversant
Permet de faire passer un jeton donc un droit d’accès spécifique à tous et un à la fois (exclusion mutuelle).
Permet de faire de la diffusion d’info mais pas efficace.
Dans des graphes qcq,Ω(m) messages
Ï simest grand algo inefficace
Ï Idée :créerG0 connexe et couvrantG : l’ens. de ses nœuds mais avec un min. d’arêtes pour être connexe : donc un arbre !
Exercice 1
Exercice : écrire l’algo multi-DFS : parcours en prof. d’abord avec plusieurs initiateurs. Note : nécessite id. toutes distinctes
(INFO 3) APD 2–Algo distribués 2021 37 / 37