• Aucun résultat trouvé

Communications Efficaces et Auto-Stabilisation

N/A
N/A
Protected

Academic year: 2021

Partager "Communications Efficaces et Auto-Stabilisation"

Copied!
5
0
0

Texte intégral

(1)

HAL Id: hal-00479860

https://hal.archives-ouvertes.fr/hal-00479860

Submitted on 3 May 2010

HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

Communications Efficaces et Auto-Stabilisation

Stéphane Devismes, Toshimitsu Masuzawa, Sébastien Tixeuil

To cite this version:

Stéphane Devismes, Toshimitsu Masuzawa, Sébastien Tixeuil. Communications Efficaces et Auto-

Stabilisation. 12èmes Rencontres Francophones sur les Aspects Algorithmiques de Télécommunica-

tions (AlgoTel), May 2010, Belle-Dune, France. pp.id 19. �hal-00479860�

(2)

Auto-Stabilisation

St´ephane Devismes 1 , Toshimitsu Masuzawa 2 et S´ebastien Tixeuil 3

1

VERIMAG UMR 5104, Universit´e Joseph Fourier, Grenoble I

2

Graduate School of Information Science and Technology, Osaka University, Japan

3

LIP6 UMR 7606, Universit´e Pierre et Marie Curie, Paris VI

Dans cet article, nous introduisons le concept d’efficacit´e des communications dans les algorithmes auto-stabilisants.

Nous d´efinissons plusieurs mesures permettant de juger de cette efficacit´e. Nous en ´etudions les limites. Enfin, nous illustrons notre approche en proposant deux algorithmes auto-stabilisants ayant de bonnes propri´et´es d’efficacit´e des communications.

Keywords: syst`emes distribu´es, auto-stabilisation, algorithme silencieux, communications efficaces

1 Introduction

L’auto-stabilisation [Dij74] est un paradigme g´en´eral permettant de concevoir des algorithmes distribu´es tol´erants aux fautes transitoires. Une faute transitoire est une panne non-d´efinitive qui alt`ere le contenu des composant du r´eseau (processus ou canal de communication) o `u elle se produit. En supposant que les fautes transitoires n’alt`erent pas le code de l’algorithme, un algorithme auto-stabilisant retrouve de lui-mˆeme et en un temps fini un comportement normal apr`es que les fautes transitoires ont cess´e. Le crit`ere principal permettant de juger de l’efficacit´e d’un algorithme auto-stabilisant est le temps de stabilisation, c’est-`a-dire, le temps maximal n´ecessaire `a l’algorithme pour retrouver un comportement correct apr`es que les fautes ont cess´e. Dans cet article, nous soutenons que ce crit`ere n’est pas suffisant. En effet, il ne permet pas, par exemple, d’´evaluer le surco ˆut occasionn´e par la propri´et´e d’auto-stabilisation : en l’absence de faute, un algorithme auto-stabilisant a un co ˆut g´en´eralement sup´erieur `a son ´equivalent non auto-stabilisant. Ce surco ˆut est observable `a la fois au niveau du temps d’ex´ecution, de l’occupation m´emoire, du nombre et de la taille des messages ´echang´es. Par exemple, la plupart des algorithmes auto-stabilisants n´ecessitent que tous les processus continuent `a envoyer r´eguli`erement des informations `a tous leurs voisins (heartbeat) apr`es que le syst`eme a stabilis´e.

Dans cet article, nous proposons d’´etudier comment r´eduire le surco ˆut en communication des algorithmes auto-stabilisants. Afin de d´etecter d’´eventuelles nouvelles fautes, tout algorithme auto-stabilisant n´ecessite que les processus continuent `a s’´echanger des informations apr`es que le syst`eme a converg´e. Nous propo- sons ici de r´eduire le nombre de voisins avec lesquels un processus continue `a ´echanger des informations une fois que l’algorithme auto-stabilisant a retrouv´e un comportement normal, on parlera alors d’efficacit´e des communications. Une notion d’efficacit´e en communication a d´ej`a ´et´e introduite pour des algorithmes tol´erants aux pannes d´efinitives : dans [LFA00], les auteurs proposent des algorithmes qui garantissent qu’un nombre global de liens de communication finissent par ne plus jamais ˆetre utilis´es. Ici, notre ap- proche est diff´erente. Nous souhaitons r´eduire le nombre de voisins avec lesquels chaque processus com- munique. Ainsi, (1) le nombre de liens de communication globalement utilis´e est r´eduit et (2) la charge des communication est r´epartie entre les diff´erents processus. Notre notion d’efficacit´e des communications est particuli`erement pertinente pour des algorithmes silencieux. De tels algorithmes convergent en un temps fini vers une configuration `a partir de laquelle les informations ´echang´ees entre voisins sont toujours les

Les r´esultats pr´esent´es ici sont issus de [DMT09]. Ce travail est soutenu par les projets ANR SHAMAN et EGIDE SAKURA.

(3)

St´ephane Devismes, Toshimitsu Masuzawa et S´ebastien Tixeuil

mˆemes. De tels algorithmes permettent de structurer un r´eseau, par exemple avec arbre couvrant ou un ensemble dominant.

Dans la section suivante, nous pr´esentons bri`evement le mod`ele consid´er´e. Dans la section 3, nous d´efinissons des mesures permettant de juger de l’efficacit´e des communications. Dans la mˆeme section, nous en ´etudions les limites. Dans la section 4, nous illustrons notre approche avec deux algorithmes auto- stabilisants ayant de bonnes propri´et´es d’efficacit´e des communications. Nous concluons dans la section 5.

2 Mod `ele

Nous consid´erons des r´eseaux bidirectionnels quelconques de n processus o `u chaque processus peut communiquer directement avec un ensemble restreint d’autres processus appel´es voisins. Les processus communiquent par le biais de variables de communication localement partag´ees : chaque processus dis- pose de variables de communication qui peuvent ˆetre lues par lui-mˆeme et par ses voisins mais o `u il est le seul `a pouvoir ´ecrire. Les processus disposent en outre de variables internes qu’ils sont les seuls `a pouvoir lire ou ´ecrire. L’´etat d’un processus correspond aux contenus de ses variables internes et de ses variables de communication. Nous appelons ´etat de communication l’´etat d’un processus restreint aux variables de com- munication. L’ensemble des ´etats des processus `a un instant donn´e forme la configuration du syst`eme. La configuration de communication correspond `a la restriction aux ´etats de communication de la configuration du syst`eme.

Les ex´ecutions sont des suites d’´etapes atomiques : `a chaque ´etape, un sous-ensemble des processus est activ´e. En une ´etape atomique, chaque processus activ´e lit ses propres variables (internes et de communi- cation) ainsi que les variables de communication de ses voisins, puis ´eventuellement modifie son ´etat. Les processus sont activ´es de mani`ere asynchrone mais ´equitable. Pour mesurer le temps de stabilisation, nous utilisons la notion de ronde, qui permet de mesurer le temps d’ex´ecution rapport´e au processus le plus lent.

Ainsi, la premi`ere ronde d’une ex´ecution termine d`es lors que tous les processus ont ´et´e activ´es au moins une fois, la seconde ronde commence, etc.

3 Mesures et Limites de l’Efficacit ´e des Communications

Nous proposons une nouvelle mesure, appel´ee k-efficacit´e, permettant de distinguer les algorithmes o`u les processus activ´es lisent les variables de communication de tout ou partie de leurs voisins : un algorithme est dit k-efficace si `a chaque ´etape de calcul, les processus activ´es lisent les variables de communication d’au plus k de leurs voisins. La k-efficacit´e permet de r´eduire le nombre et la taille des informations ´echang´ees `a chaque ´etape. Aussi pour comparer le gain des algorithmes k-efficaces aux autres algorithmes, nous avons introduit la notion de volume de communication qui correspond au volume maximum d’informations lu (c’est-`a-dire la somme des tailles des variables de communication lu) par chaque processus `a chaque ´etape de calcul. Ce crit`ere est plus pertinent que la notion classique d’encombrement m´emoire des algorithmes auto-stabilisants qui correspond `a la somme des tailles des variables internes plus les tailles des variables de communication.

Un autre crit`ere int´eressant concerne la stabilit´e des communications, c’est-`a-dire, le fait qu’un processus finisse par ne plus lire que les variables de communication d’un sous-ensemble particulier de ses voisins.

Un algorithme est dit k-stable si durant toutes ses ex´ecutions, tout processus lit les variables de communi- cation d’au plus k voisins diff´erents au moins une fois. Une telle propri´et´e serait tr`es int´eressante pour un algorithme auto-stabilisant. Cependant, nous avons d´emontr´e dans [DMT09] que la plupart des probl`emes n’admettent pas de solution auto-stabilisante k-stable o `u k est inf´erieur au degr´e du r´eseau mˆeme lorsque le r´eseau est enracin´e et comporte une orientation des arˆetes d´efinissant un graphe orient´e acyclique ayant la racine comme source. Plus pr´ecis´ement, nous avons identifi´e une classe de probl`emes, appel´ee probl`emes

`a voisinage complet, qui n’admet pas de telles solutions. Informellement, un probl`eme `a voisinage complet est un probl`eme dans lequel pour chaque paire de voisins, il existe des ´etats qui sont l´egitimes s´epar´ement mais pas simultan´ement. Par exemple, dans le probl`eme du couplage maximal, si un processus n’est pas dans un couplage, alors son ´etat est correct `a condition que tous ses voisins soient dans des couplages.

‡. C’est-`a-dire, il contient un processus distingu´e.

(4)

Cette classe de probl`emes comporte bien d’autres probl`emes comme l’ensemble ind´ependant maximal et la construction d’arbre couvrant.

Nous avons alors introduit une notion de stabilit´e moins contraignante : un algorithme est dit finalement k-stable si dans toutes ses ex´ecutions, il existe un suffixe au cours duquel chaque processus lit les variables de communication d’au plus k voisins diff´erents au moins une fois. Cette propri´et´e admet des solutions auto- stabilisantes : dans [MIKW09], Masuzawa et al pr´esentent un algorithme auto-stabilisant de construction d’arbre couvrant finalement 1-stable pour des r´eseaux enracin´es de topologie quelconque. Cependant, une fois encore, tous les probl`emes n’admettent pas de solution auto-stabilisante finalement k-stable. En effet, nous avons d´emontr´e dans [DMT09] que les probl`emes `a voisinage complet n’admettent pas de solutions auto-stabilisantes finalement k-stable o `u k est inf´erieur au degr´e dans les r´eseaux anonymes.

Finalement, nous avons introduit une version affaiblie de la finalement k-stabilit´e : un algorithme est dit finalement (x, k)-stable si dans toutes ses ex´ecutions, il existe un sous-ensemble de processus S de taille x et un suffixe d’ex´ecution au cours duquel chaque processus de S lit les variables de communication d’au plus k voisins diff´erents au moins une fois.

4 Algorithmes

Dans cette section, nous illustrons les notions de 1-efficacit´e et de finalement (x,1)-stabilit´e en auto- stabilisation avec deux algorithmes. Ces deux algorithmes sont ´ecrits pour des r´eseaux color´es de topologie quelconque. Color´e signifie que chaque processus dispose d’une constante

couleur

C qui diff`ere de celle de ses voisins. Nous supposons en outre que les couleurs sont totalement ordonn´ees.

Ensemble Ind´ependant Maximal. Nous proposons tout d’abord un algorithme auto-stabilisant qui cons- truit un ensemble ind´ependant maximal du r´eseau. Un ensemble ind´ependant est un sous-ensemble de pro- cessus tel que aucun processus de cet ensemble n’est voisin d’un autre processus de cet ensemble. Un ensemble ind´ependant est dit maximal si aucun de ses sur-ensembles n’est un ensemble ind´ependant.

Dans notre algorithme, chaque processus dispose d’une variable de communication S qui a deux ´etats possibles : dominant et domin´e. Le but de notre algorithme est de converger vers une configuration o`u l’en- semble des processus

dominants

forme un ensemble ind´ependant maximal. Ainsi, toute configuration l´egitime de notre algorithme v´erifie les deux propri´et´es suivantes :

– Tous les voisins d’un processus dominant sont des processus domin´es (ind´ependance).

– Chaque processus domin´e a au moins un voisin dominant (maximalit´e).

En plus de la variable S, chaque processus utilise une variable interne Cur. Cette variable d´esigne un voisin du processus et permet d’obtenir la 1-efficacit´e : un processus ne lit que l’´etat de communication de son voisin point´e par Cur.

Ensuite, en fonction de la valeur de S, chaque processus p adopte la strat´egie suivante :

– Si p est dominant (c’est-`a-dire, S p = dominant), alors p regarde l’un apr`es l’autre les ´etats de commu- nication de ses voisins (`a chaque action, p lit l’´etat de communication de son voisin point´e par Cur puis change la valeur de Cur pour son voisin suivant). Si p d´ecouvre que l’un de ses voisins q est aussi dominant, alors la propri´et´e d’ind´ependance est viol´ee. Dans ce cas, soit p soit q doit devenir do- min´e. Nous utilisons alors les couleurs pour faire un choix d´eterministe, c’est-`a-dire, le processus ayant la plus grande couleur devient domin´e. Noter que dans une configuration l´egitime, chaque dominant contrˆole continuellement ses voisins.

– Si p est domin´e (c’est-`a-dire, S p = domin ´ e), alors p doit avoir la garantie qu’au moins l’un de ses voisins est dominant (maximalit´e). Si le voisin de p point´e par Cur p n’est pas dominant alors p devient dominant. Aussi, pour acc´el´erer le temps de convergence, si le voisin q de p point´e par Cur p a une couleur plus grande que celle de p alors p devient dominant mˆeme si q est dominant.

Nous avons prouv´e dans [DMT09] qu’en suivant cette strat´egie notre algorithme ´etait auto-stabilisant, 1- efficace et finalement (⌊ L

max

2 +1 ⌋,1)-stable o `u L max est la longueur (en nombre d’arˆetes) du plus long chemin

´el´ementaire du r´eseau, c’est-`a-dire, qu’une fois que l’algorithme a converg´e, au moins ⌊ L

max

2 +1 ⌋ processus

ne lisent plus que les variables de communication d’un seul voisin. Enfin, notre algorithme stabilise en

O(∆ × ♯ C ) rondes o `u ∆ est le degr´e du r´eseau et ♯ C est le nombre de couleurs diff´erentes utilis´ees.

(5)

St´ephane Devismes, Toshimitsu Masuzawa et S´ebastien Tixeuil

Couplage Maximal. Notre deuxi`eme algorithme auto-stabilisant construit un couplage maximal du r´eseau.

Un couplage est un ensemble d’arˆetes tel qu’il n’y aucun sommet qui est incident `a deux arˆetes diff´erentes de l’ensemble. Un couplage est dit maximal si aucun de ses sur-ensembles n’est un couplage.

Dans notre algorithme, les processus utilisent la variable interne Cur de la mˆeme mani`ere que dans l’algorithme pr´ec´edent afin d’obtenir la k-efficacit´e.

Ensuite, le principe de base de l’algorithme est de cr´eer des paires de voisins

mari´es

. Les liens entre ces paires constituent le couplage maximal. Pour cr´eer ces paires, chaque processus utilise une variable de communication PR qui d´esigne un voisin ou est ´egale `a 0. Deux voisins sont mari´es si et seulement si ils se d´esignent l’un l’autre avec leurs variables PR.

Lorsque PR p vaut 0, cela signifie que le processus p n’est pas mari´e et qu’il n’a pas trouv´e de voisin `a qui proposer le mariage. Dans ce cas, p est dit libre.

Lorsque PR p d´esigne un voisin q, cela signifie que le processus p est soit mari´e avec q soit il a propos´e un mariage `a q.

Chaque processus maintient une variable de communication bool´eenne M afin d’informer tous ses voisins de son statut (mari´e ou pas mari´e).

En se basant sur ces 3 variables, chaque processus p applique la strat´egie suivante :

– p n’est autoris´e `a se marier qu’avec le voisin point´e par Cur p . Donc, si PR p ∈ {0,Cur / p }, alors PR p est affect´e `a Cur p (ce cas est toujours cons´ecutif `a une faute).

– p maintient `a jour M p de telle mani`ere que M p soit vrai lorsqu’il est mari´e.

– Si p est libre et que son voisin d´esign´e par Cur p lui propose un mariage, alors p accepte en affectant PR p `a q.

– p r´einitialise PR p `a 0 lorsque p n’est par mari´e et que son voisin point´e par PR p est soit (i) mari´e avec un autre processus (PR q ∈ {0, / p}) soit (ii) a une couleur plus petite que la sienne. La condition (i)

´evite que p attende un voisin d´ej`a mari´e. La condition (ii) est utilis´e pour casser les cycles.

– Lorsque p est libre, il doit essayer de se marier. Donc, il regarde un `a un les ´etats de communication de ses voisins jusqu’`a trouver un voisin libre avec une couleur plus grande que la sienne. Donc, p fait varier Cur p jusqu’`a ce qu’il trouve un voisin q v´erifiant la condition, dans ce cas p propose le mariage

`a q en affectant PR p `a q.

Nous avons prouv´e dans [DMT09] qu’en suivant cette strat´egie notre algorithme ´etait auto-stabilisant, 1-efficace et finalement (⌈ 2∆−1 2m ⌉, 1)-stable o `u m est le nombre d’arˆetes du r´eseau et ∆ est le degr´e du r´eseau, c’est-`a-dire, qu’une fois que l’algorithme a converg´e, au moins ⌈ 2∆−1 2m ⌉ processus ne lisent plus que les variables de communications d’un seul voisin. Enfin, notre algorithme stabilise en au plus (∆ + 1)n + 2 rondes (n est le nombre de processus).

5 Conclusion

Dans cet article, nous nous sommes int´eress´es `a la minimisation du surco ˆut en communication des al- gorithmes auto-stabilisants calculant des points fixes (algorithmes silencieux). Nous avons tout d’abord propos´e de nouvelles mesures permettant d’´evaluer ce surco ˆut, particuli`erement dans la phase stabilis´ee.

Dans un second temps, nous avons propos´e deux algorithmes o `u le surco ˆut en communication est amoin- dri. Dans nos travaux futurs, nous souhaiterions g´en´eraliser notre approche en proposant une m´ethode de transformation automatique d’un algorithme auto-stabilisant en un algorithme auto-stabilisant efficace.

R ´ef ´erences

[Dij74] Edsger W. Dijkstra. Self-stabilizing systems in spite of distributed control. Commun. ACM, 17(11) :643–

644, 1974.

[DMT09] St´ephane Devismes, Toshimitsu Masuzawa, and S´ebastien Tixeuil. Communication efficiency in self- stabilizing silent protocols. In ICDCS, pages 474–481. IEEE Computer Society, 22-26 June 2009.

[LFA00] Mikel Larrea, Antonio Fern´andez, and Sergio Ar´evalo. Optimal implementation of the weakest failure detector for solving consensus. In SRDS, pages 52–59, 2000.

[MIKW09] Toshimitsu Masuzawa, Taisuke Izumi, Yoshiaki Katayama, and Koichi Wada. Brief announcement :

Communication-efficient self-stabilizing protocols for spanning-tree construction. In OPODIS, volume

5923 of Lecture Notes in Computer Science, pages 219–224. Springer, 2009.

Références

Documents relatifs

[r]

Cours de Frédéric Mandon sous licence Creative Commons BY NC SA, http://creativecommons.org/licenses/by-nc-sa/3.0/fr/1. • La symétrie par rapport à la première bissectrice

Cette fonction prend en entrée une case de coordonnées i et j, a priori cachée (le booléen est à False) S’il y a une bombe sur la case, la dévoile (booléen caché à True)

The fn's arc continuous functions which decrease pointwise to the constantly one function, hence the convergence is uniform on the compact set SF b y Dini's

Plutôt que d’avoir l’ensemble des nœuds qui luttent contre l’environnement pour résoudre un problème commun, on suppose que les nœuds sont partitionnés

[r]

But : R´ esoudre un probl` eme d’optimisation num´ erique Trouver une des meilleures solution selon le crit` ere :?. =

Pour tracer la caractéristique U = f(I) de ce dipôle, on mesure l’intensité du courant qui le traverse, pour différentes valeurs de la tension à