View PDF - CiteSeerX

publicité
Ecacité et et Simplicité dans les Algorithmes Distribués
Auto-Stabilisants de Parcours en Profondeur de Jeton
Franck Petit
Résumé de Thèse
Janvier 1998
La complexité croissante des calculs à eectuer nécessite des unités de traitement de plus en
plus puissantes. Face aux limites physiques d'intégration et de miniaturisation des composants,
les unités de traitement ne peuvent plus reposer sur un processeur unique, mais sur un ensemble
de processeurs interconnectés entre eux. Les processeurs coopèrent et mettent en commun leur
ressources pour exécuter une même tâche. Plusieurs processeurs reliés entre eux forment un réseau
d'interconnexion. Les réseaux sont aussi désignés dans la littérature par les termes de systèmes
distribués - de l'anglais distributed systems -, systèmes répartis ou encore systèmes coopératifs.
En général, les processeurs communiquent par échanges de messages et les systèmes distribués
sont asynchrones, c'est à dire que le temps d'exécution d'un pas de programme d'un processeur et
le délai d'acheminement d'un message dans un canal de communication sont nis mais non bornés.
Il est crucial de développer des algorithmes ecaces pour gérer ces systèmes. Un des grands
problèmes que pose cette gestion est de maintenir un fonctionnement correct de l'ensemble du
système en présence de défaillances possibles en dépit du grand nombre de processeurs. Les algorithmes répondant à cette spécication s'appellent des algorithmes distribués tolérants aux fautes.
Une des approches à la tolérance aux fautes est l'auto-stabilisation. Dans [Dij74], article fondateur, EW Dijkstra dénit l'auto-stabilisation comme la propriété pour un système de recouvrer de
lui-même un comportement correct en un nombre ni d'étapes, et ce, quel que soit son état initial. Les algorithmes auto-stabilisants sont donc très adaptés aux systèmes admettant des pannes
transitoires ou ne pouvant pas être initialisés.
Malheureusement, les preuves et la mesure des performances des algorithmes auto-stabilisants
soulèvent des problèmes diciles à résoudre. Par exemple, la mesure du temps de calcul d'un
algorithme distribué est souvent liée au nombre de messages échangés. Répondre à cette seule
question dans le domaine de l'auto-stabilisation revient à mesurer le temps de stabilisation, c'està-dire le temps mis par l'algorithme pour atteindre un comportement correct en partant d'un état
quelconque. Malheureusement, dans [DIM91], les auteurs montrent que dans la quasi-totalité des
cas, il n'existe pas de borne minimale orant la possibilité de calculer ce temps dans le modèle à
passage de messages.
Face à cette double diculté, la plupart des travaux du domaine de l'auto-stabilisation s'eectue
à partir de modèles dans lesquels les problèmes engendrés par les échanges de messages sont ignorés.
Les processeurs communiquent alors par l'intermédiaire d'une mémoire partagée entre processeurs
voisins dans le réseau d'interconnexion. Communément, ces modèles sont au nombre de deux : le
modèle à états d'une part, et le modèle à registres d'autre part, le second étant une variante plus
proche de la réalité. Avec ces modèles, si l'élaboration des preuves et la mesure des performances
sont encore diciles, elles sont tout de même facilitées par l'absence des problèmes liés aux messages.
LaRIA RR No 98-05. Université de Picardie Jules Verne 5, rue du Moulin Neuf - 80000 AMIENS.
Contribution
Dans notre thèse, nous nous intéressons aux algorithmes de circulation - ou parcours - d'un
unique jeton dans un réseau.
Ces algorithmes sont fréquemment utilisés pour résoudre de nombreux problèmes dans les systèmes distribués. Ainsi, répétés à l'inni, ils peuvent être utilisés pour la résolution de l'exclusion
mutuelle distribuée, la construction d'arbre couvrant, la détection de terminaison, la synchronisation...
Parmi les travaux que nous présentons, nous proposons plusieurs algorithmes, écrits dans le
modèle à états sur des topologies arborescentes ou quelconques, tels que le nombre maximumd'états
par processeur est en O() - étant le degré maximum du réseau. Ils sont donc asymptotiquement
optimaux. Tous fonctionnent sans que les processeurs soit distinctement identiés, sauf un appelé
la racine.
Dans le modèle à états, une conguration du système distribué est constituée du produit
cartésien des états des n processeurs du système. L'espace mémoire minimum requis sur chaque
processeur pour faire circuler le jeton a fait l'objet de nombreux travaux portant essentiellement
sur l'anneau ou sur la chaîne. Dans son article initial, Dijkstra [Dij74] a proposé trois algorithmes
dont l'un utilise 3 congurations pour un anneau et un autre 22 4( ?2) congurations pour une
chaîne. Tchuente [Tch81] a montré qu'avec les hypothèses de Dijkstra, ces deux algorithmes étaient
optimaux en nombre de congurations possibles pour résoudre l'exclusion mutuelle distribuée. Il
semblerait donc vain de rechercher d'autres algorithmes déterministes avec moins de congurations
pour résoudre ce problème.
C'est pourtant ce que proposent Flatebo et Datta [FD94] d'une part, et Ghosh [Gho91] d'autre
part. Ces auteurs présentent des algorithmes avec seulement 2 congurations. Mais leurs solutions
ne fonctionnent que sur des topologies particulières a priori assez éloignées d'un anneau ou d'une
chaîne.
Dans cette thèse, nous introduisons le rayon de lecture. Le rayon de lecture est la distance à
laquelle les processeurs peuvent lire les variables d'autres processeurs. Nous mettons en évidence
qu'il existe une relation étroite entre l'anneau, la chaîne et les topologies particulières utilisées par
ces auteurs. Nous montrons que ces systèmes particuliers sont en fait respectivement équivalents à
un anneau ou une chaîne auxquels on aurait permis un rayon de lecture supérieur à 1. Dans [FD94],
les auteurs proposent un algorithme sur un anneau tel que tous les processeurs ont un rayon de
lecture égal à 1 sauf un dont le rayon est 2 . Dans [Gho91], Ghosh propose un algorithme sur une
chaîne tel que tous les processeurs ont un rayon de lecture égal à 2.
Avec la même hypothèse que dans [Gho91], nous proposons [PV97a] un algorithme autostabilisant de parcours en profondeur
fonctionnant sur un réseau quelconque qui ne
permet au maximum que 2 Q =1 ( + 1) congurations au système, où est le nombre de
voisins - le degré - de chaque processeur p . Il se trouve que ce nombre correspond quasiment à la
borne minimale du nombre de congurations envisagée par Tchuente [Tch81] en généralisant aux
arbres ses résultats obtenus sur l'anneau et la chaîne.
Toujours avec un rayon de lecture supérieur à 1, nous proposons deux autres algorithmes autostabilisants se fondant sur la solution de Flatebo et Datta [FD94]. L'un réalise une diusion en
parallèle sur un arbre, l'autre un parcours en profondeur sur un réseau quelconque. Tous deux ne
nécessitent que 2 congurations possibles, soit deux états par processeur - un bit.
En ne tolérant qu'un rayon de lecture égal à 1 pour tous les processeurs, nous présentons
un second algorithme
[DJPV98] pour une topologie quelconque qui ne requiert que 2 (1 + 1) 3( ?1) Q =2 ( + 1) congurations.
Toujours avec un rayon de lecture égal à 1, nous présentons un troisième algorithme [Pet97]
n
n
n
n
n
n
i
i
i
i
n
n
n
i
i
2
auto-stabilisant de circulation en profondeur d'un jeton pour une topologie
arborescente - graphe quelconque sans cycles. Cet algorithme ne requiert que ( + 1) Q ( + 2)
n
i=2
1
i
congurations, soit quasiment deux fois moins d'états par processeur que pour la borne envisagée
par Tchuente.
Comment est-il possible que nous obtenions un tel résultat ?
Nous utilisons la nouvelle spécication d'un jeton introduite par Villain. En eet, ce dernier
propose dans [Vil97] deux algorithmes optimaux sur la chaîne qui ne nécessitent que 22 3( ?2)
congurations. Ce surprenant résultat, qui semble contredire celui de Tchuente, est simplement
obtenu en formulant diéremment la spécication qui permettait de repérer si un processeur détenait un jeton ou non. Ainsi, la spécication de Dijkstra qui était un processeur détient un jeton
s'il a la possibilité d'eectuer une action est devenue un processeur détient un jeton s'il a la possibilité d'eectuer une action particulière . La spécication introduite par Dijkstra impose donc
que lorsque le système est stabilisé, toutes les actions des processeurs soient totalement ordonnées
alors que celle de Villain autorise que plusieurs actions s'exécutent concurremment.
Intuitivement, avec la dénition de Dijkstra généralisée à l'arbre, il faut pouvoir distinguer deux
parcours successifs du jeton. En outre, tous les algorithmes écrits pour un parcours séquentiel sur
un graphe quelconque, ou sur un arbre, nécessitent au moins un sélecteur sur chaque processeur qui
indique le chemin à suivre par le jeton. Trivialement, ce sélecteur dépend pour chaque
processeur
p de . Ces deux constats amènent naturellement la borne de Tchuente, soit 2 Q =1 . Avec
la spécication de Villain, les traces du dernier passage du jeton peuvent être eacées avant
de relancer le prochain passage. C'est cet eacement qui se déroule concurremment au déplacement
du jeton, même quand le système est stabilisé.
Par ailleurs, nous montrons [PV97c] que la borne minimale du nombre de conn
i
n
i
n
i
i
gurationsQnécessaires à la visite en profondeur d'un jeton dans un arbre est de
( + 1) ( + 2) congurations. Cette borne vaut aussi pour les algorithmes non
auto-stabilisants. Puisque notre algorithme sur l'arbre [Pet97] utilise exactement ce nombre de
congurations, il est donc optimal. Nous voyons ainsi que sur l'arbre, le coût de l'auto-stabilisation
1
n
i=2
i
en terme de nombre de congurations est nul.
La gure 1 présente la synthèse des solutions dans le modèle à états.
rayon de
Anneau
[FD94]
Topologie
Arbre
Chaîne
[Gho91]
Quelconque
[JB95]
Q
( + 1)
3 lecture > 1
[PV97a]
2 Q ( + 1)
rayon de [Dij74] [Dij74, Gho93]
[Pet97]
[DJPV98]
3
2 4 ?
(
+
1)
2
( + 1)
Q
lecture = 1
[Vil97]
( + 2) 3 ? Q ( + 1)
2 3 ?
2
2
(n = 2p)
n
n
2
n
2
n
n
(n 2)
1
n
i=2
(n 2)
i
n
i=1
i
n
i=1
i
(n 1)
1
n
i=2
i
Figure 1: Synthèse des solutions dans le modèle à états
Deux des algorithmes que nous présentons dans cette thèse [DJPV98, PV97a] orent l'avantage
d'être simples et très proches de l'algorithme intuitif de base non auto-stabilisant. Une fois
stabilisés, ceux-ci se comportent exactement comme l'algorithme de base. Ils n'utilisent qu'un très
petit nombre de règles et leur lecture en est grandement facilitée.
La facilité de lecture est aussi une des caractéristiques importantes de l'un des deux algorithmes
auto-stabilisants [PV97d, PV97b] que nous présentons maintenant. Ils réalisent le parcours en
3
profondeur d'un jeton dans le modèle à passage de messages.
Le premier [PV97d] est une adaptation au modèle à passage de messages d'un algorithme dû
à Johnen et Beauquier [JB95] écrit dans le modèle à états. Il est aussi le premier algorithme
auto-stabilisant de parcours d'un jeton en profondeur directement écrit dans le modèle
à passage de messages.
Le second algorithme [PV97b] est une amélioration importante du premier qui utilise
le résultat obtenu dans le modèle à états avec un rayon de lecture égal à deux [PV97a]. Il constitue
d'ores et déjà le support de deux protocoles [FV97, BFPV98].
Nous avons déjà eu l'occasion d'évoquer que dans le modèle à passage de messages, il était
impossible de calculer le nombre de messages nécessaires à la stabilisation de certains algorithmes
[DIM91]. Le parcours en profondeur d'un jeton est un de ceux-là.
Il est cependant pertinent de s'intéresser au surcoût d'un algorithme auto-stabilisant en phase
stabilisée par rapport à l'algorithme non-autostabilisant équivalent. Lorsque le système est stabilisé,
la complexité des deux algorithmes présentés dans cette thèse est O(m) messages, où m est
le nombre de canaux dans le réseau. Si est borné, l'algorithme classique optimal ayant une
complexité de O(m) messages, nos deux algorithmes sont donc asymptotiquement optimaux.
Enn, pourquoi choisir d'adapter deux algorithmes [JB95, PV97a] avec une hypothèse a priori
peu raisonnable, à savoir le rayon de lecture égal à 2, alors qu'il existait déjà d'autres algorithmes
avec un rayon de 1 ?
Tout d'abord, il s'est avéré que l'hypothèse faite sur le rayon n'a pas été un problème pour
l'adaptation au modèle à passage de messages. Ensuite, outre le sélecteur permettant de suivre
les déplacements du jeton, les autres algorithmes écrits dans les modèles à états ou à registres
utilisent tous une variable appelée niveau sur chaque processeur dont la taille dépend directement
de n. Dans le modèle à passage de messages, le sélecteur ne sert qu'à indiquer le canal sur lequel le
processeur doit envoyer le jeton. Cette valeur n'a donc qu'une signication locale et n'a pas à être
transmise d'un processeur à l'autre.
En revanche, le niveau doit l'être pour permettre la stabilisation du système. Par conséquent,
en adaptant ces algorithmes, la taille des messages serait variable et dépendante de n.
Ce constat nous a amené à adapter d'abord [JB95] puis [PV97a]. En eet, les deux seules variables utilisées sont le sélecteur et une variable couleur à trois valeurs dans [PV97d] et à deux valeurs
dans [PV97b]. Seules ces valeurs sont à transmettre de processeur à processeur. En intégrant les
diérents types de messages et l'information nécessaire à la stabilisation des liens de communication
[AB93], nous obtenons une taille des messages indépendante du réseau : 5 bits.
References
[AB93]
Y Afek and GM Brown. Self-stabilization over unreliable communication media. Distributed Computing, 7:2734, 1993.
[BFPV98] M Bui, O Flauzac, F Petit, and V Villain. Distributed FTSS routing. In AI'98, Applied
Informatics Proceedings. Iasted, 1998. to appear.
[Dij74] EW Dijkstra. Self stabilizing systems in spite of distributed control. Communications
of the Association of the Computing Machinery, 17:643644, 1974.
[DIM91] S Dolev, A Israeli, and S Moran. Resource bounds for self stabilizing message driven
protocols. In PODC91 Proceedings of the Tenth Annual ACM Symposium on Principles
of Distributed Computing, pages 281293, 1991.
4
[DJPV98] AK Datta, C Johnen, F Petit, and V Villain. Self-stabilizing depth-rst token circulation in arbitrary rooted networks. In SIROCCO'98, 5th International Colloquium On
Structural Information and Communication Complexity Proceedings, 1998. to appear.
[FD94] M Flatebo and AK Datta. Two-state self-stabilizing algorithms for token rings. IEEE
Transactions on Software Engineering, 20:500504, 1994.
[FV97] O Fauzac and V Villain. An implementable dynamic automatic self-stabilizing protocol.
In I-SPAN'97, Third International Symposium on Parallel Architectures, Algorithms
and Networks Proceedings, pages 9197. IEEE Computer Society Press, 1997.
[Gho91] S Ghosh. Binary self-stabilization in distributed systems. Information Processing Letters, 40:153159, 1991.
[Gho93] S Ghosh. An alternative solution to a problem on self-stabilization. ACM Transactions
on Programming Languages and Systems, 15:735742, 1993.
[JB95] C Johnen and J Beauquier. Space-ecient distributed self-stabilizing depth-rst token
circulation. In Proceedings of the Second Workshop on Self-Stabilizing Systems, pages
4.14.15, 1995.
[Pet97] F Petit. Highly space-ecient self-stabilizing depth-rst token circulation for trees. In
OPODIS'97, International Conference On Principles Of Distributed Systems Proceedings, pages 221235, 1997.
[PV97a] F Petit and V Villain. Color optimal self-stabilizing depth-rst token circulation. In
I-SPAN'97, Third International Symposium on Parallel Architectures, Algorithms and
Networks Proceedings, pages 317323. IEEE Computer Society Press, 1997.
[PV97b] F Petit and V Villain. Color optimal self-stabilizing depth-rst token circulation protocol
for asynchronous message-passing systems. In PDCS-97 10th International Conference
on Parallel and Distributed Computing Systems Proceedings, pages 227233. International Society for Computers and Their Applications, 1997.
[PV97c] F Petit and V Villain. Optimality and self-stabilisation over tree networks. Technical
Report RR 97-23, LaRIA, University of Picardie Jules Verne, 1997.
[PV97d] F Petit and V Villain. A space-ecient and self-stabilizing depth-rst token circulation
protocol for asynchronous message-passing systems. In Euro-par'97 Parallel Processing,
Proceedings LNCS:1300, pages 476479. Springer-Verlag, 1997.
[Tch81] M Tchuente. Sur l'auto-stabilisation dans un réseau d'ordinateurs. RAIRO Informatique
Theoretique, 15:4766, 1981.
[Vil97] V Villain. A new lower bound for self-stabilizing mutual exclusion algorithms. Technical
Report RR97-17, LaRIA, University of Picardie Jules Verne, 1997.
5
Téléchargement