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
Plan
1 Introduction
2 Modélisation et hypothèses
3 Notion d’algorithme distribué
4 Rappels de complexité : notations de Landau
5 Algorithmes distribués classiques (1ère partie)
Introduction
Plan de la section
1 Introduction
2 Modélisation et hypothèses
3 Notion d’algorithme distribué
4 Rappels de complexité : notations de Landau
5 Algorithmes distribués classiques (1ère partie)
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
2 Modélisation et hypothèses Système distribué
Petit lexique de théorie des graphes Modèle de réseau point-à-point Processus
Modèles de réseaux
Propriétés du système de communication Réseaux synchrones et asynchrones
3 Notion d’algorithme distribué
4 Rappels de complexité : notations de Landau
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 Graphe G=(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 (ordredeG).
|E| =m: nbre de canaux de communication (tailledeG).
Chaque site deS possède unemémoire locale non partagée de capacité bornée et au moins 1 proc.
Modélisation et hypothèses Petit lexique de théorie des graphes
Petit lexique de théorie des graphes
Graphe orienté: 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
Distance entre deux sommets : la longueur du plus court chemin entre ces sommets en nbre d’arêtes.
Diamètred’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
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 de S peut continuer à fonctionner indépendamment
Chaque site est identifié par un id propre∈I.I est muni d’un ordre total.
pas d’horloge globale ou 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))
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...
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 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 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 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 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 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 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 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
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.
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.
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.
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.
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.
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.
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.
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 ditessynchrones 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.
Notion d’algorithme distribué
Plan de la section
1 Introduction
2 Modélisation et hypothèses
3 Notion d’algorithme distribué Définition
Sûreté et Vivacité Initiateurs Actif/Passif Terminaison
Algorithmes distribués synchrones complexité temporelle
Complexité en nbre de message échangés
4 Rappels de complexité : notations de Landau
Notion d’algorithme distribué Définition
Notion d’algorithme distribué
Définition
Un algorithme 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 site P deS, 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
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é.
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é par p initiateurs indépendants (1≤p≤n), simultanément ou non.
Unalgo. centraliséest un algo. qui nécessitep=1pour toute exécution.
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é se termine par processus (explicitement)lorsque pour toute exéc. tous les sites de S 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
Laterminaison par message (implicite): il n’y a plus de message en circulation. L’algo. est dit alors sans 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 surS : un algo quelconque A et un algoA0 message-driven. NotonsCA(n) et CA0(n) le nbre de
messages échangés resp. par AetA0, on aCA(n)≥CA0(n).
Un algo. distri. synchrone guidé par message est dit«Time and Message driven».
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 noterasur_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
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 : Si AalorsB, 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 lenbre de bits échangéssi mesgs de tailles quelconques
Rappels de complexité : notations de Landau
Plan de la section
1 Introduction
2 Modélisation et hypothèses
3 Notion d’algorithme distribué
4 Rappels de complexité : notations de Landau
5 Algorithmes distribués classiques (1ère partie)
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 etC1sont 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
Si f(n)=n2+nlog2(n) alorsf(n)est en O(n3),O(n2),Ω(nlog(n)),Θ(n2).
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
2 Modélisation et hypothèses
3 Notion d’algorithme distribué
4 Rappels de complexité : notations de Landau
5 Algorithmes distribués classiques (1ère partie) Éveil distribué par inondation
Éveil dans des réseaux particuliers Algorithme traversant
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 ?
Algorithmes distribués classiques (1ère partie) Éveil distribué par inondation
Complexités de l’éveil distribué
Graphe quelconque (mais connexe)
nbre de messages : 2m messages
complexité en temps :O(D) messages (D est le diamètre du graphe) Optimal en temps et en messages
Algorithmes distribués classiques (1ère partie) Éveil dans des réseaux particuliers
Éveil dans des réseaux particuliers
Dans un arbrepar 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’obtenirO(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
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 ?
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 en anneau:
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
DFS1 dans des réseaux particuliers
si les sites connaissent la topologie
graphe en anneau: 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
DFS1 dans des réseaux particuliers
si les sites connaissent la topologie
graphe en anneau: 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
DFS1 dans des réseaux particuliers
si les sites connaissent la topologie
graphe en anneau: 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
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 2
Exercice : écrire l’algo multi-DFS : parcours en prof. d’abord avec plusieurs initiateurs. Note : nécessite id. toutes distinctes
Algorithmes distribués classiques (1ère partie) Une solution pour multi-DFS
Une solution : Algo DFSk
Idée : la plus grande identité gagne et c’est son DFS qui est conservé.
Eveil:siest_initiateuralors
marque←MyID; nonvisités←Voisins; parent←−1; visite() sinonmarque←−1;finsi/∗ on suppose que les id >=0 ∗/
sur_receptionde<dfs,m>dey:
simarque<malors/∗ Reinit avec nouveau marquage ∗/
nonvisités←Voisins−{y}; parent←y;marque←m; visite();
sinon simarque=malors/∗ déjà visité par le même ∗/
nonvisités←nonvisités −{y};envoyer<back,m>ày sinon/∗ ignore ce message ∗/
finsi
sur_receptionde<back,m>dey:
Simarque=malorsvisite();finsi;/∗ sinon ignore le message ∗/
procedurevisite() : sinonvisités6=;alors
x←premier(nonvisités); nonvisités←nonvisités −{x};envoyer<dfs,marque>àx sinon/∗ Plus de voisins à visiter on le signale et on s’arrete ∗/