Auto-stabilisation des Algorithmes Rapides
(informatique distribuée, réseaux)Lieu du stage : LIP6, 104 avenue du Président Kennedy, France Équipe : NPA, Projet INRIA Grand Large
Directeur de stage : Sébastien Tixeuil (Sébastien.Tixeuil@lip6.fr), Sylvie Delaët (delaet@lri.fr)
Présentation générale du domaine :
L’auto-stabilisation a été définie il y a une trentaine d’années par Dijkstra comme la propriété d’un système réparti de retrouver un comportement correct en un temps fini sans intervention extérieure. L’auto-stabilisation est un moyen efficace de se prémunir contres des défaillances transitoires qui peuvent corrompre les mémoires des nœuds d’un réseau ou le contenu des canaux de communications.
Avec l’augmentation du nombre de composants des réseaux modernes (comme Internet, les réseaux de capteurs sans fils, ou les grilles de calcul de prochaine génération), plusieurs algorithmes répartis classiques ne sont pas adaptés au changement d’échelle car leur temps d’exécution est une fonction de la taille du réseau. Cependant, pour certains problèmes, il est possible de développer des algorithmes dits « rapides », c'est-à-dire que leur temps d’exécution est fixé et indépendant de la taille globale du système.
Objectifs du stage :
Il existe plusieurs techniques générales pour apporter la propriété d’auto-stabilisation à un algorithme réparti « classique » (c'est-à-dire non-stabilisant). Par exemple, un nœud particulier peut effectuer régulièrement des instantanés du système, et s’il découvre une incohérence, déclencher une réinitialisation globale du système. Plusieurs autres approches sont possibles, selon que les algorithmes s’exécutent de manière plus ou moins localisée.
Le but du stage est tout d’abord de comprendre les mécanismes utilisés dans la littérature pour auto-stabiliser des algorithmes répartis « classiques ». Par la suite, on déterminera l’adéquation des ces techniques aux algorithmes « rapides », et/ou on proposera un nouveau schéma d’auto- stabilisation automatique spécifique aux algorithmes rapides.
Compétences espérées :
Algorithmique distribuée, complexité algorithmique.