cours4 - Verimag

Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Algorithmique r´epartie
Philippe Bidinger
Universit´
e Joseph Fourier
20/03/2014
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Outline
1
Complexit´e
2
Variantes AST
3
Arbre de recouvrement minimal
4
Temps dans les syst`emes asynchrones
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Evaluation des algorithmes
Complexit´e deux grandeurs importanes
Nombre de messages envoy´es
Temps d’ex´ecution
Notation O(...), fonction de param`etres du graphe :
Nombre de noeuds, d’arˆetes, diam`etre
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Temps d’ex´ecution
Soit une trace α = π0 ...πn ...
On associe `a chaque ´evenement un temps t
α = π0t0 ...πntn ...
(tn ) est une suite croissante qui repr´esente l’instant
d’ex´ecution de chaque action.
(tn ) doit v´erifier les contraintes suivantes.
le temps maximum qu’une action de sortie d’un processus
peut-ˆetre possible avant d’ˆetre ex´ecut´ee est inf´erieur `a une
constante l
le temps maximum qu’une action de sortie d’un canal peut-ˆetre
en attente avant d’ˆetre ex´ecut´ee est inf´erieur `a une constante d
Le temps d’arriv´ee ´evenement est la borne sup´erieure de son
temps dans toutes les ex´ecutions possibles
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Temps d’ex´ecution
En r´esum´e, on consid`ere l’ex´ecution la plus d´efavorable
On mesure le temps d’arriv´ee d’un ´evenement particulier (ex :
action leader)
Le temps pass´e par un message dans un canal est d
Le temps d’ex´ecution d’une action est l (ind´ependamment du
nombre d’action possibles)
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Complexit´e de l’algorithme LCR - messages
Anneau unidirectionnel de taille n
Messages :
Pire cas : UINs d´ecroissants 1 + ... + n =
Complexit´e : O(n2 ).
n∗(n+1)
2
Temps d’ex´ecution : n(d + l) + l
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Complexit´e de l’algorithme AST
Graphe G = (V ,E ) (Vertice = noeuds, Edge = arˆetes)
Messages : O(|E |) (au plus un message par arˆete dans chaque
direction)
Temps d’ex´ecution : diam ∗ (l + d) + l
Certains chemins de l’AST peuvent ˆetre plus grands que le
diam`etre du graphe.
N´eanmoins, le temps d’ex´ecution s’exprime en fonction du
diam`etre
En effet, dans une ex´ecution, le temps pour qu’un noeud
re¸coive son premier message depuis i0 ne peut pas ˆetre plus
grand que le plus mauvais temps par le plus court chemin.
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Outline
1
Complexit´e
2
Variantes AST
3
Arbre de recouvrement minimal
4
Temps dans les syst`emes asynchrones
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Retour sur l’algorithme AST
L’arbre calcul´e est diff´erent pour chaque trace
ie. de l’ordonnancement des ´ev`enements
Pas forc´ement minimal
Rappel : Un arbre minimal est tel que le chemin entre la racine
et un noeud est le plus court possible.
Exemples
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Variantes et applications de l’algorithme AST
Diffusion : enrichissement des messages (piggybacking) pour
diffuser (broadcast) une information `a tous les noeuds
Accus´es de r´eception (Algo ASTAck)
Chaque feuille ou noeud qui poss`ede d´ej`a un p`ere renvoie un
accus´e de r´eception (ack) `a l’emetteur d’un message
Chaque noeud interne attend les ack des voisins
Lorsqu’ils sont tous arriv´es, ils envoient un ack au p`ere
L’algorithme se termine quand la racine re¸coit tous les acks
attendus
Cet algorithme est parfois appel´e Vague
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Complexit´e de ASTAck
Messages O(|E |)
Comme pour AST, un message d’ack pour chaque message
envoy´e
Temps d’ex´ecution O(n ∗ (l + d))
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Variantes et applications de l’algorithme AST
Convergecast
Les ack peuvent ˆetre enrichis pour faire remonter une
information vers la racine
Ex : calcul du nombre de noeuds du graphe (TP2)
Pointeurs sur les enfants :
lors de la MAJ du p`ere, un noeud peut r´epondre `a l’´emetteur
avec un message parent ou !nonparent!.
l’´emetteur met `a jour sa liste d’enfants en fonction
AST comme pr´ecalcul
La cr´eation d’un arbre de recouvrement (avec pointeurs sur les
enfants) est souvent une premi`ere ´etape
L’arbre peut-ˆetre utilis´e plusieurs fois pour diffuser ou
”convergecaster” des informations
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Variantes et applications de l’algorithme AST
Application `a l’´election de leader (cf. TP 3)
Utilisation d’UID
Chaque processus initie un ”broadcast-convergecast” pour
d´eterminer le plus grand UID du syst`eme
Le plus grand UID sera le leader
On a besoin de pouvoir faire des vagues multiples
Remarque : ne pas confondre Id (adresse) et UID (valeur
utilis´ee pour les besoin de l’algorithme).
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Outline
1
Complexit´e
2
Variantes AST
3
Arbre de recouvrement minimal
4
Temps dans les syst`emes asynchrones
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
ASTMin
Id´ee : modifier AST pour construire un arbre de recouvrement
minimal
Chaque noeud m´emorise la distance courante depuis la racine,
0 pour l’initiateur, infinie pour les autres.
L’initiateur envoie la distance 1 `a ses voisins.
Lorsqu’un noeud obtient une distance plus petite que la
sienne, il met `a jour son p`ere, et transmet cette nouvelle
distance `a ses voisins.
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
ASTMin : Limitation
D`es qu’un processus a un p`ere, il a un chemin vers la racine,
mais pas forc´ement le plus court
Ce sera le cas quand l’algorithme sera termin´e
Mais comment les noeuds peuvent savoir quand il n’y aura
plus de corrections `a faire?
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Complexit´e
Messages : O(n|E |)
Chaque noeud peut obtenir au plus n proposition de distance
A chaque changement de distance, au plus O(|E|) messages
sont ´emis.
Temps d’ex´ecution : O(diam.(l + d))
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Outline
1
Complexit´e
2
Variantes AST
3
Arbre de recouvrement minimal
4
Temps dans les syst`emes asynchrones
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Absence d’horloge globale
Dans un syst`eme asynchrone, les processus n’ont pas acc`es `a
une horloge commune.
Temps de communication inconnus =⇒ impossibilit´e de
synchroniser les horloges.
Cons´equence : impossible d’ordonner les messages en fonction
de leur moment d’´emission
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Exemple
Forum de discussion r´eparti (question / r´eponse)
Chaque participant poss`ede une copie locale des discussions
Chaque intervention (question ou r´eponse) diffus´ee aux autres
participants
Q
P1
Q
Q
A
P2
A
A
P3
Probl`eme : le processus P3 re¸coit une r´eponse avant la
question.
On ne peut pas utiliser les temps d’´emission pour les
r´eordonner
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Temps logique
Leslie Lamport ”Time, Clocks, and the Ordering of Events in a
Distributed System”. 1978.
Notion de temps logique. Utile dans de nombreux algorithmes
Contexte : Syst`eme asynchrone, send/receive ou broadcast,
canaux FIFO.
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Diagramme d’´evenements
Q
P1
Q
Q
A
P2
A
A
P3
On appelle une telle figure un diagramme d’´ev`enements
C’est une repr´esentation graphique d’une trace
Chaque ligne horizontale repr´esente l’´evolution un processus
Temps croissant de gauche `a droite
Even`ements (send, ´eventuellement !broadcast!, receive,
actions internes...) mat´erialis´es sur la ligne
send (ou !broadcast!) et receive correspondant reli´es par
une ligne
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Relation de causalit´e
Soit une trace α
On d´efinit la relation de causalit´e → comme suit :
Si π1 et π2 sont des actions de α, on a π1 → π2 s’il existe un
chemin de π1 vers π2 dans le sens du temps dans le
diagramme d’´evenements correpondant `a α.
Informellement, π1 → π2 signifie que π1 a pu provoquer π2 .
Propri´et´e : Si α est une trace ´equitable d’un syst`eme, alors
tout r´eordonnancement des actions de α compatible avec →
est encore une trace ´equitable.
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Temps logique
D´efinition Un temps logique est une fonction ltime des
evenements d’une trace α dans T (un ensemble totalement
ordonn´e, en g´en´eral les entiers) tel que :
Tous les ´evenements ont un TL diff´erent
Les TL des ´evenements d’un processus croissent strictement en
fonction du temps
Les TL croissent strictement le long d’un chemin dans le sens
du temps
Propri´et´e : Si α est une trace ´equitable d’un syst`eme, alors il
existe une trace α0 telle que :
α0 contient les mˆeme ´ev`enements que α
les ´ev`enements de α0 apparaissent dans le mˆeme ordre que leur
LT
l’ordre des ´ev`enements est respect´e pour chaque processus
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Transformation de Lamport
Transformation qui peut s’appliquer de mani`ere transparente `a
n’importe quelle algorithme
Autrement dit, elle d´efinit des r`egles de modification d’un
algorithme sans changer son fonctionnement
Permet d’attribuer des TL `a chaque ´ev`enement
Chaque processus a un compteur local c , initialement 0
T est l’ensemble des paires (c,i) ordonn´ees
lexicographiquement c est une valeur de compteur, i l’indice
d’un processus.
i sert `a departager deux valeurs de compteur identiques
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Principe de la transformation
Le compteur est increment´e d’au moins 1 `a chaque action
Le TL associ´e `a un ´evenement est la valeur du compteur juste
apr`es l’´ev`enement, associ´ee `a l’indice du processus (pour
d´epartager les ´evenement avec une mˆeme valeur de c).
Lors d’une action send(m), le processus calcule la nouvelle
valeur de c et envoie le (timestamp) (c,i) avec le message m
(idem pour broadcast(m))
Lors d’une r´eception de message, le processus met `a jour son
compteur avec une valeur strictement sup´erieure `a sa valeur
pr´ec´edente, mais aussi au TL du message.
Propri´et´e : les valeurs ainsi associ´es aux ´evenements v´erifient
les propri´et´es d’un temps logique
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Applications
Tr`es nombreuses applications
Algorithme d’exclusion mutuelle
Capture d’´etat global
Diffusion ”causale”
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Retour sur l’exemple initial
On applique la transformation de Lamport
Lors de la r´eception d’un message <m,tm>, le processus
s’assure qu’il n’y aura plus de message plus ancien avant de le
traiter
Il m´emorise le dernier temps logique connu de ses voisins
(ti ,i ∈ V ) en fonction des messages qu’il re¸coit
D`es que ∀i ∈ V ,tm <= ti , le message m est retransmis.
En pratique, on peut rajouter des messages artificiels pour
limiter l’attente
Chaque processus diffuse un ”heartbeat” p´eriodiquement
Philippe Bidinger
Algorithmique r´
epartie
Complexit´
e
Variantes AST
Arbre de recouvrement minimal
Temps dans les syst`
emes asynchrones
Diffusion causale
On peut abstraire cet algorithme sous la forme d’une primitive
de communication appel´ee diffusion causale
Philippe Bidinger
Algorithmique r´
epartie