0 - Verimag

publicité
Fondements de l’algorithmique
des réseaux
Stéphane Devismes
17/04/2014
SCI121
Plan
•
•
•
•
•
Réseau ?
Algorithme distribué ?
Problème à résoudre ?
Exemple : circulation d’un jeton
Conclusion
17/04/2014
SCI121
Plan
•
•
•
•
•
Réseau ?
Algorithme distribué ?
Problème à résoudre ?
Exemple : circulation d’un jeton
Conclusion
17/04/2014
SCI121
Réseaux
• « En informatique, un réseau est un ensemble
interconnecté
d’appareils
électroniques,
géographiquement distants qui échangent des
informations »
Wikipédia
17/04/2014
SCI121
Exemples de réseaux
•
•
•
•
•
•
Internet
Le réseau de l’Université
Le réseau téléphonique (filaire, cellulaire)
GPS
Réseau de capteurs (surveillance sismique)
...
17/04/2014
SCI121
Appareils Electroniques
17/04/2014
SCI121
Interconnections
17/04/2014
SCI121
Echange d’informations
17/04/2014
SCI121
Couches de communication
(Modèle OSI)
Utilisateur final
Application
Présentation
Session
Transport
Réseau
MAC
Physique
17/04/2014
Deux fonctions :
- Envoi(M,v)
- Réception(M,v)
Protocoles réseaux : Algorithmes distribués
Envoi d’une trame de bits (message) point à point
Envoi d’un seul bit d’information point à point
SCI121
Objectifs
• Communiquer : mail, chat …
• Echanger : fichiers (mp3, doc)
• Partager les resources :
– Physique (imprimantes)
– De calculs (applications)
• Accélérer le calcul
– Grid computing
– SETI@HOME
17/04/2014
SCI121
Plan
•
•
•
•
•
Réseau ?
Algorithme distribué ?
Problème à résoudre ?
Exemple : circulation d’un jeton
Conclusion
17/04/2014
SCI121
Modèle théorique pour les réseaux :
Les systèmes distribués
• Machines ≈ Processus
17/04/2014
SCI121
Les systèmes distribués
• Machines ≈ Processus
• Caractéristiques:
– Pas de contrôle centralisé
• Programmes locaux
• Mémoires locales
17/04/2014
SCI121
Les systèmes distribués
• Machines ≈ Processus
• Caractéristiques:
– Pas de contrôle
centralisé
• Programmes locaux
• Mémoires locales
– Asynchrones
– Pas de temps global
17/04/2014
SCI121
Les systèmes distribués
• Machines ≈ Processus
• Caractéristiques:
– Pas de contrôle
centralisé
• Programmes locaux
• Mémoires locales
– Asynchrones
– Pas de temps global
– Interconnectés
17/04/2014
SCI121
Les systèmes distribués
• Machines ≈ Processus
• Caractéristiques:
– Pas de contrôle centralisé
• Programmes locaux
• Mémoires locales
– Asynchrones
– Pas de temps global
– Interconnectés
• Passage de messages
asynchrone et FIFO
17/04/2014
SCI121
FIFO
17/04/2014
SCI121
FIFO
A
17/04/2014
SCI121
FIFO
B A
17/04/2014
SCI121
FIFO
C B A
17/04/2014
SCI121
FIFO
C B
17/04/2014
SCI121
A
FIFO
C
17/04/2014
SCI121
B
FIFO
C
17/04/2014
SCI121
Les systèmes distribués
• Hypothèses
– Liens bidirectionnels
17/04/2014
SCI121
Liens bidirectionnels : pas toujours !
17/04/2014
SCI121
Les systèmes distribués
4078
167
• Hypothèses
– Liens bidirectionnels
– Identité unique
(e.g., adresse IP)
12
42
17/04/2014
23
SCI121
Les systèmes distribués
• Hypothèses
407
8
– Liens bidirectionnels
– Identité unique
– Topologie statique et
connexe (≈graphe)
167
12
42
17/04/2014
• Nous excluons ici les
réseaux téléphoniques
sans-fils !
23
SCI121
Rappel : Connexité
Connexe !
17/04/2014
SCI121
Rappel : Connexité
Pas connexe !
17/04/2014
SCI121
Algorithme distribué
17/04/2014
SCI121
Algorithme Distribué
Exemple : Calcul d’un arbre couvrant
17/04/2014
SCI121
Algorithme Distribué
Exemple : Calcul d’un arbre couvrant
17/04/2014
SCI121
Algorithme Distribué
Exemple : Calcul d’un arbre couvrant
17/04/2014
SCI121
Algorithme Distribué
Exemple : Calcul d’un arbre couvrant
Racin
e=
vrai
• Entrées réparties
Racin
e=
faux
Racin
e=
faux
Racin
e=
faux
17/04/2014
Racin
e=
faux
SCI121
Algorithme Distribué
Exemple : Calcul d’un arbre couvrant
• Entrées réparties
• Calculs locaux
– Mémoires locales
– Programmes locals
– Envoi de messages
– Décision locale
Racin
e=
faux
17/04/2014
SCI121
Algorithme Distribué
Exemple : Calcul d’un arbre couvrant
Racin
e=
vrai
• Entrées réparties
• Calculs locaux
Racin
e=
faux
– Mémoires locales
– Programmes locals
– Envoi de messages
– Decision locale
Racin
e=
faux
Racin
e=
faux
17/04/2014
• Sorties réparties
Racin
e=
faux
SCI121
Algorithme Distribué
Exemple : Calcul d’un arbre couvrant
Racin
e=
vrai
• Entrées réparties
• Calculs locaux
Racin
e=
faux
– Mémoires locales
– Programmes locals
– Envoi de messages
– Decision locale
Racin
e=
faux
Racin
e=
faux
17/04/2014
• Sorties réparties
• Tâche globale
Racin
e=
faux
SCI121
Evaluation des performances
Quel est le meilleur algorithme ?
• #Messages
• Volume (en bits)
• Temps (en rondes)
• Occupation mémoire (en bits)
17/04/2014
SCI121
Plan
•
•
•
•
•
Réseau ?
Algorithme distribué ?
Problème à résoudre ?
Exemple : circulation d’un jeton
Conclusion
17/04/2014
SCI121
Problèmes classiques
• Echange de donnée : routage, diffusion, …
• Accords : consensus, élection, …
• Auto-organisation : arbre couvrant, clustering
• Allocation de ressources : exclusion mutuelle,
diner des philosophes…
17/04/2014
SCI121
Echange de donnée : routage
17/04/2014
SCI121
Echange de donnée : routage
Source
Destination
17/04/2014
SCI121
Echange de donnée : routage
17/04/2014
SCI121
Accord : élection
Calculer un chef !
17/04/2014
SCI121
Accord : élection
Calculer un chef !
34
12
15
22
42
58
72
31
17/04/2014
56
SCI121
Accord : élection
Calculer un chef !
12 34
12
12
12
42
12
12 15
12 22
31 12
17/04/2014
12
58
SCI121
72 12
56
Auto-organisation : k-Clustering
17/04/2014
SCI121
Auto-organisation : k-Clustering
17/04/2014
SCI121
Auto-organisation : k-Clustering
• Ex. k=2
≤k
17/04/2014
SCI121
Auto-organisation : k-Clustering
• Ex. k=2
≤k
17/04/2014
SCI121
Allocation de ressources : exclusion
mutuelle
17/04/2014
SCI121
Allocation de ressources : exclusion
mutuelle
17/04/2014
SCI121
Allocation de ressources : exclusion
mutuelle
17/04/2014
SCI121
Allocation de ressources : exclusion
mutuelle
17/04/2014
SCI121
Allocation de ressources : exclusion
mutuelle
17/04/2014
SCI121
Plan
•
•
•
•
•
Réseau ?
Algorithme distribué ?
Problème à résoudre ?
Exemple : circulation d’un jeton
Conclusion
17/04/2014
SCI121
Circulation d’un jeton
• Plan
– Définition
– Solution dans un réseau en anneau (token ring)
– Solution dans un réseau en arbre
– Solution dans un réseau quelconque
17/04/2014
SCI121
Circulation d’un jeton : définition
• Un message appelé « jeton »
– Circule séquentiellement dans le réseau
– Il doit visiter tous les processus
– La circulation termine
17/04/2014
SCI121
Circulation d’un jeton dans un anneau
17/04/2014
SCI121
Circulation d’un jeton dans un anneau
0
0
1
1
0
1
0
1
1
1
0
0
0
17/04/2014
0
1
1
SCI121
Circulation d’un jeton dans un anneau
0
0
1
• Un initiateur
1
0
1
0
1
1
1
0
0
0
17/04/2014
0
1
1
SCI121
Circulation d’un jeton dans un anneau
J
0
0
1
• L’initiateur envoie le
jeton J sur le canal 0
1
0
1
0
1
1
1
0
0
0
17/04/2014
0
1
1
SCI121
Circulation d’un jeton dans un anneau
0
0
1
J
1
• Sur réception du canal
i, un non-initiateur
renvoie le jeton sur le
canal (i+1) mod 2
0
1
0
1
1
1
0
0
0
17/04/2014
0
1
1
SCI121
Circulation d’un jeton dans un anneau
0
0
1
• Sur réception du canal
i, un non-initiateur
renvoie le jeton sur le
canal (i+1) mod 2
1
0
1
0
1
1
1
0
0
0
17/04/2014
0
1
1
SCI121
J
Circulation d’un jeton dans un anneau
0
0
1
• Sur réception du canal
i, un non-initiateur
renvoie le jeton sur le
canal (i+1) mod 2
1
0
1
0
1
1
1
0
0
0
17/04/2014
0
1
1
J
SCI121
Circulation d’un jeton dans un anneau
0
0
1
• Sur réception du canal
i, un non-initiateur
renvoie le jeton sur le
canal (i+1) mod 2
1
0
1
0
1
1
1
0
0
0
17/04/2014
1
J
0
1
SCI121
Circulation d’un jeton dans un anneau
0
0
1
• Sur réception du canal
i, un non-initiateur
renvoie le jeton sur le
canal (i+1) mod 2
1
0
1
0
1
1
1
0
0
J
17/04/2014
0
0
1
1
SCI121
Circulation d’un jeton dans un anneau
0
0
1
1
0
1
J
• Sur réception du canal
i, un non-initiateur
renvoie le jeton sur le
canal (i+1) mod 2
0
1
1
1
0
0
0
17/04/2014
0
1
1
SCI121
Circulation d’un jeton dans un anneau
J
0
0
1
• Sur réception du canal
i, un non-initiateur
renvoie le jeton sur le
canal (i+1) mod 2
1
0
1
0
1
1
1
0
0
0
17/04/2014
0
1
1
SCI121
Circulation d’un jeton dans un anneau
0
0
1
• Sur réception,
l’initiateur décide la
terminaison
1
0
1
0
1
1
1
0
0
0
17/04/2014
0
1
1
SCI121
Circulation d’un jeton dans un arbre
0
2
0
0
17/04/2014
• Quasiment le
même
algorithme !
1
0
1
1
0
0
SCI121
Circulation d’un jeton dans un arbre
J
0
2
0
0
17/04/2014
• L’initiateur
envoie le jeton
J sur le canal 0
1
0
1
1
0
0
SCI121
Circulation d’un jeton dans un arbre
1
0
J
0
0
17/04/2014
0
2
1
• Sur réception du
canal i, un noninitiateur renvoie
le jeton sur le
canal (i+1) mod δ
1
0
0
SCI121
• Ici δ = 3
• (2+1) mod 3 = 0
Circulation d’un jeton dans un arbre
1
0
0
2
J
0
0
17/04/2014
1
• Sur réception du
canal i, un noninitiateur renvoie
le jeton sur le
canal (i+1) mod δ
1
0
0
SCI121
• Ici δ = 3
• (2+1) mod 3 = 0
Circulation d’un jeton dans un arbre
1
0
0
2
0
J
0
17/04/2014
1
• Sur réception du
canal i, un noninitiateur renvoie
le jeton sur le
canal (i+1) mod δ
1
0
0
SCI121
• Ici δ = 1
• (0+1) mod 1 = 0
Circulation d’un jeton dans un arbre
1
0
0
2
0
0
17/04/2014
1
J
0
• Sur réception du
canal i, un noninitiateur renvoie
le jeton sur le
canal (i+1) mod δ
1
0
SCI121
• Ici δ = 3
• (0+1) mod 3 = 1
Circulation d’un jeton dans un arbre
1
0
0
2
0
0
17/04/2014
1
• Sur réception du
canal i, un noninitiateur renvoie
le jeton sur le
canal (i+1) mod δ
1
J
0
0
SCI121
• Ici δ = 1
• (0+1) mod 1 = 0
Circulation d’un jeton dans un arbre
1
0
J
0
0
17/04/2014
0
2
1
• Sur réception du
canal i, un noninitiateur renvoie
le jeton sur le
canal (i+1) mod δ
1
0
0
SCI121
• Ici δ = 3
• (1+1) mod 3 = 2
Circulation d’un jeton dans un arbre
1
0
0
2
0
0
17/04/2014
J
1
• Sur réception du
canal i, un noninitiateur renvoie
le jeton sur le
canal (i+1) mod δ
1
0
0
SCI121
• Ici δ = 2
• (0+1) mod 2 = 1
Circulation d’un jeton dans un arbre
0
2
0
0
17/04/2014
• Sur réception du
canal i, un noninitiateur renvoie
le jeton sur le
canal (i+1) mod δ
1
0
1
1
0
J
0
SCI121
• Ici δ = 2
• (0+1) mod 2 = 1
Circulation d’un jeton dans un arbre
0
2
0
0
17/04/2014
• Sur réception du
canal i, un noninitiateur renvoie
le jeton sur le
canal (i+1) mod δ
1
0
1
1
0
0
J
SCI121
• Ici δ = 1
• (0+1) mod 1 = 0
Circulation d’un jeton dans un arbre
1
0
J
0
2
0
0
17/04/2014
1
• Sur réception du
canal i, un noninitiateur renvoie
le jeton sur le
canal (i+1) mod δ
1
0
0
SCI121
• Ici δ = 2
• (1+1) mod 2 = 0
Circulation d’un jeton dans un arbre
2
0
0
17/04/2014
0
• Sur réception du
canal δ-1,
l’initiateur décide
la terminaison
1
• Ici δ-1 = 1
1
0
1
0
0
SCI121
Circulation d’un jeton dans un réseau
quelconque ?
• Est-ce que l’algorithme précédent fonctionne
?
NON !
17/04/2014
SCI121
Exemple
2
0
0
1
1
0
1
0
0
1
0
1
0
1
0
1
1
17/04/2014
0
SCI121
Solution
• Algorithme de Tarry (1885)
• Problème de Labyrinthe
• « Ne reprendre l'allée initiale qui a conduit à un
carrefour pour la première fois que lorsqu'on ne
peut pas faire autrement »
• Sommets = intersections
• Liens = allées entre les intersections des arêtes
17/04/2014
SCI121
Variables
• Pour chaque processus
– Un pointeur P ∈ {NULL} ∪ {0…δ-1} (initialisé à
NULL)
– Un tableau de Booléen VISITE[0…δ-1],
initialement toutes les cases sont à faux.
17/04/2014
SCI121
Exemple
2
0
0
0
1
1
0
1
0
0
2
0
1
0 1
17/04/2014
1
1
2
0
1
SCI121
Exemple
J
0
2
0
0
1
1
0
1
0
0
2
0
1
0 1
17/04/2014
1
1
2
0
1
SCI121
Exemple
2
0
0
J
0
1
1
0
1
0
0
2
0
1
0 1
17/04/2014
1
1
2
0
1
SCI121
Exemple
2
0
0
0
1
1
0
1
0
0
2
J
17/04/2014
0
1
0 1
1
1
2
0
1
SCI121
Exemple
2
0
0
0
1
1
0
1
0
0
2
0
1
0 1
17/04/2014
J
2
1
1
0
1
SCI121
Exemple
2
0
0
0
1
1
0
1
0
0
2
J
1
0 1
17/04/2014
0
1
1
2
0
1
SCI121
Exemple
2
0
0
0
1
1
0
1
0
0
2
1
0 1
17/04/2014
J
0
1
1
2
0
1
SCI121
Exemple
2
0
0
0
1
1
0
1
0
0
2
0
1
0 1
17/04/2014
J
2
1
1
0
1
SCI121
Exemple
2
0
0
0
1
1
0
1
0
0
2
0
1
0 1
17/04/2014
1
1
2
J
0
1
SCI121
Exemple
2
0
0
0
1
1
0
1
0
0
2
0
1
0 1
17/04/2014
1
1
2
0
1
SCI121
J
Exemple
2
0
0
0
1
1
0
1
0
0
2
0
1
0 1
17/04/2014
1
1
2
0
1
SCI121
J
Exemple
2
0
0
J
0
1
1
0
1
0
0
2
0
1
0 1
17/04/2014
1
1
2
0
1
SCI121
Exemple
2
0
0
J
0
1
1
0
1
0
0
2
0
1
0 1
17/04/2014
1
1
2
0
1
SCI121
Exemple
2
0
0
0
1
1
0
1
0
0
2
0
1
0 1
17/04/2014
1
1
2
0
1
SCI121
J
Exemple
2
0
0
0
1
1
0
1
0
0
2
0
1
0 1
17/04/2014
1
1
2
0
1
SCI121
J
Exemple
2
0
0
0
1
1
0
1
0
0
2
0
1
0 1
17/04/2014
1
1
2
J
SCI121
0
1
Exemple
2
0
0
0
1
1
0
1
0
0
2
J
17/04/2014
0
1
0 1
1
1
2
0
1
SCI121
Exemple
2
0
0
J
0
1
1
0
1
0
0
2
0
1
0 1
17/04/2014
1
1
2
0
1
SCI121
Exemple
2
0
J
0
0
1
1
0
1
0
0
2
0
1
0 1
17/04/2014
1
1
2
0
1
SCI121
Exemple
2
0
0
0
1
J
1
1
0
0
0
2
0
1
0 1
17/04/2014
1
1
2
0
1
SCI121
Exemple
2
0
0
0
1
J
1
1
0
0
0
2
0
1
0 1
17/04/2014
1
1
2
0
1
SCI121
Exemple
0
0
1
Terminé
!
2
0
1
0
1
0
0
2
0
1
0 1
17/04/2014
1
1
2
0
1
SCI121
Plan
•
•
•
•
•
Réseau ?
Algorithme distribué ?
Problème à résoudre ?
Exemple : circulation d’un jeton
Conclusion
17/04/2014
SCI121
Conclusion
• Depuis 40 ans
– La plupart des problèmes d’algorithmiques
réparties ont été résolus de manière efficace
– En supposant des réseaux sans pannes …
17/04/2014
SCI121
Conclusion: Challenge actuel
• Les réseaux modernes sont à grande-échelle et fait de
machines hétérogènes et produites en masses à faible
coût, e.g.
– Internet
• (10 milliard de machine connectée d’ici 2016)
• Internet des objets
– Réseaux sans fils
• Communication radio : beaucoup de pertes de messages
• Crash de machines à cause des batteries limitées
⇒ Forte probabilité de pannes
⇒ Intervention humain impossible
⇒ Besoin d’algorithmes distribués tolérant les pannes
17/04/2014
SCI121
Merci de votre attention !
17/04/2014
SCI121
Téléchargement