Algorithmique répartie Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 1 / 60
1 Introduction 2 Systèmes répartis Modélisation des réseaux Vocabulaires Noeuds Liens de communications 3 Notion de temps Réseaux synchrones Réseaux asynchrones 4 Algorithmes répartis Variables locales Pseudo-code Réveil spontanné Un exemple 5 Complexité(s) Complexité séquentielle Nombre de messages Tailles des messages Complexité temporelle : Complexité spatiale : Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 2 / 60
Algorithmique Séquentielle Une tâche / un calcul Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 3 / 60
Algorithmique Séquentielle Une tâche / un calcul Série d opérations élémentaires Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 3 / 60
Algorithmique Séquentielle Une tâche / un calcul Série d opérations élémentaires Les unes après les autres Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 3 / 60
Algorithmique Séquentielle Une tâche / un calcul Série d opérations élémentaires Les unes après les autres Sur une même machine Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 3 / 60
Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 4 / 60
Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 4 / 60
Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 5 / 60
Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 5 / 60
Sommaire Introduction Syst` emes r epartis Notion de temps Algorithmes r epartis Complexit e(s) R eseaux Algorithmique r epartie - Cours de L elia Blin - L3 MIAGE-ASR 2015 6 / 60
Internet Représentation d une partie du réseau Internet en 2005 Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 7 / 60
Un réseaux c est quoi de nos jours? Très grand réseaux : Explosion combinatoire du nombre de machines connecté Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 8 / 60
Un réseaux c est quoi de nos jours? Très grand réseaux : Explosion combinatoire du nombre de machines connecté Non homogène Explosion du type de machines connectées Filaire ou non Non statique Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 8 / 60
Non homogènes Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 9 / 60
Un réseaux pour quoi faire Echanger de l information Emails fichiers textes fichiers son fichiers images... Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 10 / 60
Un réseaux pour quoi faire Echanger de l information Emails fichiers textes fichiers son fichiers images... Partager des ressources mémoire base de données matériels Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 10 / 60
Un réseaux pour quoi faire Echanger de l information Emails fichiers textes fichiers son fichiers images... Partager des ressources mémoire base de données matériels Tout cela s organise... Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 10 / 60
Pas de big boss Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 11 / 60
Pas de big boss Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 11 / 60
Question Comment réaliser une tâche commune sur un réseaux à grande échelle? Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 12 / 60
Tâche commune Tâche : Répondre à la question : Qui est né en Mars? Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 13 / 60
Tâche commune Tâche : Répondre à la question : Qui est né en Mars? Approche centralisée : Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 13 / 60
Tâche commune Tâche : Répondre à la question : Qui est né en Mars? Approche centralisée : L enseignant demande à tout le monde Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 13 / 60
Tâche commune Tâche : Répondre à la question : Qui est né en Mars? Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 14 / 60
Tâche commune Tâche : Répondre à la question : Qui est né en Mars? Approche distribué : Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 14 / 60
Tâche commune Tâche : Répondre à la question : Qui est né en Mars? Approche distribué : Chaque élève demande à ses voisins qui demandent à leurs voisins... Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 14 / 60
Systèmes et algorithmiques répartis Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 15 / 60
Systèmes répartis C est un réseaux qui est constitués d entités de calcul Mémoire puissance de calcul... Homogène ou non Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 16 / 60
Systèmes répartis C est un réseaux qui est constitués de liens de communications filaire, wifi, radio... Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 17 / 60
Systèmes répartis C est un réseaux qui est constitués de liens de communications filaire, wifi, radio... Les liens de communications Ils sont utilisés pour échanger de l information. L information est transportée par des messages. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 17 / 60
Sommaire Introduction Syst` emes r epartis Notion de temps Algorithmes r epartis Complexit e(s) Mod elisation des r eseaux Mod elisation des r eseaux Algorithmique r epartie - Cours de L elia Blin - L3 MIAGE-ASR 2015 18 / 60
Sommaire Introduction Syst` emes r epartis Notion de temps Algorithmes r epartis Complexit e(s) Mod elisation des r eseaux Mod elisation des r eseaux Algorithmique r epartie - Cours de L elia Blin - L3 MIAGE-ASR 2015 19 / 60
Modélisation des réseaux Modélisation des réseaux On modélise les réseaux par des graphes simples. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 20 / 60
Vocabulaires Vocabulaires : entités de calculs H Les unités de calculs peuvent être noté de différentes façon Noeuds B D M F S N Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 21 / 60
Vocabulaires Vocabulaires : entités de calculs H B Les unités de calculs peuvent être noté de différentes façon Noeuds Sites D M F S N Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 21 / 60
Vocabulaires Vocabulaires : entités de calculs D H B Les unités de calculs peuvent être noté de différentes façon Noeuds Sites Processeurs M F S N Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 21 / 60
Vocabulaires Vocabulaires : entités de calculs H Les unités de calculs peuvent être noté de différentes façon Noeuds D M B Sites Processeurs Processus F S N Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 21 / 60
Vocabulaires Vocabulaires : communications H B Les canaux de communications peuvent être noté de différentes façon Canaux de communications D M F S N Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 22 / 60
Vocabulaires Vocabulaires : communications D H B Les canaux de communications peuvent être noté de différentes façon Canaux de communications Liens M F S N Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 22 / 60
Vocabulaires Vocabulaires : communications D H M B Les canaux de communications peuvent être noté de différentes façon Canaux de communications Liens Arêtes F S N Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 22 / 60
Noeuds Mémoire des noeuds Chaque noeuds a sa propre mémoire Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 23 / 60
Noeuds Mémoire des noeuds Chaque noeuds a sa propre mémoire chaque mémoire peut être de taille différente. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 23 / 60
Noeuds Mémoire des noeuds Chaque noeuds a sa propre mémoire chaque mémoire peut être de taille différente. Il n y a pas de mémoire commune partagée. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 23 / 60
Noeuds Horloge des noeuds Chaque noeuds a sa propre horloge Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 24 / 60
Noeuds Horloge des noeuds Chaque noeuds a sa propre horloge Les temps des horloges peuvent être différents. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 24 / 60
Noeuds Horloge des noeuds Chaque noeuds a sa propre horloge Les temps des horloges peuvent être différents. Il n y a pas d horloge commune partagée. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 24 / 60
Noeuds Identifiants des noeuds 191.156 312 AA 12 127 Identifiants Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 25 / 60
Noeuds Identifiants des noeuds 191.156 312 AA 12 127 Identifiants Chaque noeud possède ou pas un identifiant unique. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 25 / 60
Noeuds Noeud Un noeud est une puissance de calcul qui Exécute un ensemble d instructions Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 26 / 60
Noeuds Noeud Un noeud est une puissance de calcul qui Exécute un ensemble d instructions Réagit à un événement local : Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 26 / 60
Noeuds Noeud Un noeud est une puissance de calcul qui Exécute un ensemble d instructions Réagit à un événement local : Un calcul interne Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 26 / 60
Noeuds Noeud Un noeud est une puissance de calcul qui Exécute un ensemble d instructions Réagit à un événement local : Un calcul interne la réception d un message Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 26 / 60
Noeuds Noeud Un noeud est une puissance de calcul qui Exécute un ensemble d instructions Réagit à un événement local : Un calcul interne la réception d un message l envoie d un message Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 26 / 60
Noeuds Noeud Un noeud est une puissance de calcul qui a Une mémoire locale Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 27 / 60
Noeuds Noeud Un noeud est une puissance de calcul qui a Une mémoire locale Un état local Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 27 / 60
Noeuds Noeud Un noeud est une puissance de calcul qui a Une mémoire locale Un état local Un ensemble de données et de variables locales Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 27 / 60
Noeuds Noeud Un noeud est une puissance de calcul qui a Une mémoire locale Un état local Un ensemble de données et de variables locales Possède ou pas d identifiant Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 27 / 60
Noeuds Noeud Un noeud est une puissance de calcul qui a Une mémoire locale Un état local Un ensemble de données et de variables locales Possède ou pas d identifiant Possède peu ou pas de connaissance Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 27 / 60
Noeuds Connaissance locale Connaissance sur les liens de communications 1 Le noeud p connait qu il a d liens de communications Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 28 / 60
Noeuds Connaissance locale Connaissance sur les liens de communications 1 Le noeud p connait qu il a d liens de communications 2 Le noeud p peu numéroter ses liens (numéro de ports) Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 28 / 60
Noeuds Connaissance locale Connaissance sur les liens de communications 1 Le noeud p connait qu il a d liens de communications 2 Le noeud p peu numéroter ses liens (numéro de ports) 3 Le noeud p connait les identifiants de ses voisins Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 28 / 60
Noeuds Connaissance globale Connaissance Le noeud a aucune connaissance du réseau : le plus réaliste. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 29 / 60
Noeuds Connaissance globale Connaissance Le noeud a aucune connaissance du réseau : le plus réaliste. Le noeud a la connaissance de la taille du réseau (nombre de noeuds) : peu réaliste (grande taille, dynamique) Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 29 / 60
Noeuds Connaissance globale Connaissance Le noeud a aucune connaissance du réseau : le plus réaliste. Le noeud a la connaissance de la taille du réseau (nombre de noeuds) : peu réaliste (grande taille, dynamique) Le noeud a la connaissance du diamètre du réseaux Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 29 / 60
Noeuds Connaissance globale Connaissance Le noeud a aucune connaissance du réseau : le plus réaliste. Le noeud a la connaissance de la taille du réseau (nombre de noeuds) : peu réaliste (grande taille, dynamique) Le noeud a la connaissance du diamètre du réseaux Le noeud a la connaissance de la topologie du réseaux (grille, anneaux,...) Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 29 / 60
Noeuds Connaissance globale Connaissance Le noeud a aucune connaissance du réseau : le plus réaliste. Le noeud a la connaissance de la taille du réseau (nombre de noeuds) : peu réaliste (grande taille, dynamique) Le noeud a la connaissance du diamètre du réseaux Le noeud a la connaissance de la topologie du réseaux (grille, anneaux,...)... Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 29 / 60
Liens de communications Liens de communications B A C D E F G communication Chaque noeuds envoie ou reçoit des messages à travers des liens de communications Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 30 / 60
Liens de communications Liens de communications B A C D E F G communication Ces liens peuvent être unidirectionel Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 31 / 60
Liens de communications Liens de communications B D F C A E G communication Ces liens peuvent être unidirectionel Ces liens peuvent être bidirectionel Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 31 / 60
Liens de communications Liens de communications B A C D E F G Communications Le transit des messages à l intérieur des liens peuvent être FIFO ou pas Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 32 / 60
Liens de communications Liens de communications B A C D E F G Communications FIFO Soit deux messages m 1 et m 2 envoyer par le noeud A Avec m 1 envoyer avant le message m 2 m 1 arrivera en B avant m 2 Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 33 / 60
Liens de communications Liens de communications B A C D E F G Communications non FIFO Soit deux messages m 1 et m 2 envoyer par le noeud A Avec m 1 envoyer avant le message m 2 m 2 peut arriver avant ou après m 1. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 34 / 60
Réseaux synchrones Réseaux synchrones Définition 1 Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 35 / 60
Réseaux synchrones Réseaux synchrones Définition 1 Les noeuds ont des temps de calculs identiques. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 35 / 60
Réseaux synchrones Réseaux synchrones Définition 1 Les noeuds ont des temps de calculs identiques. Le temps de circulation des messages est identique. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 35 / 60
Réseaux synchrones Réseaux synchrones Définition 2 Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 36 / 60
Réseaux synchrones Réseaux synchrones Définition 2 Les noeuds calculent par rondes synchrones. Dans une rounde, chaque noeud exécute les étapes suivantes : 1 Effectuer des calculs locaux. 2 Envoyer des messages à ces voisins. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 36 / 60
Réseaux synchrones Réseaux synchrones Définition 2 Les noeuds calculent par rondes synchrones. Dans une rounde, chaque noeud exécute les étapes suivantes : 1 Effectuer des calculs locaux. 2 Envoyer des messages à ces voisins. 3 Recevoir des messages de ces voisins. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 36 / 60
Réseaux asynchrones Réseaux asynchrones Définition Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 37 / 60
Réseaux asynchrones Réseaux asynchrones Définition Les noeuds ont des temps de calculs différents. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 37 / 60
Réseaux asynchrones Réseaux asynchrones Définition Les noeuds ont des temps de calculs différents. Le temps de circulation des messages est non borné mais fini. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 37 / 60
Algorithmes répartis Définition Tous les noeuds ont le même algorithme séquentiel. Cet algorithme réagit aux réceptions de messages. Cet algorithme envoie des messages Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 38 / 60
Variables locales Variables locales Tous les noeuds ont le même algorithme séquentiel. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 39 / 60
Variables locales Variables locales Tous les noeuds ont le même algorithme séquentiel. Donc tous les noeuds ont des variables locales qui porteront le même nom. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 39 / 60
Variables locales Variables locales Tous les noeuds ont le même algorithme séquentiel. Donc tous les noeuds ont des variables locales qui porteront le même nom. Vision extérieure globale : Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 39 / 60
Variables locales Variables locales Tous les noeuds ont le même algorithme séquentiel. Donc tous les noeuds ont des variables locales qui porteront le même nom. Vision extérieure globale : Pour reconnaitre de quelle variable on parle on ajoutera l identifiant du processus à la variable. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 39 / 60
Variables locales Variables locales Tous les noeuds ont des variables locales qui porteront le même nom. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 40 / 60
Variables locales Variables locales Tous les noeuds ont des variables locales qui porteront le même nom. Exemple : Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 40 / 60
Variables locales Variables locales Tous les noeuds ont des variables locales qui porteront le même nom. Exemple : d i sera la variable distance du site ayant pour identifiant i. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 40 / 60
Variables locales Variables locales Tous les noeuds ont des variables locales qui porteront le même nom. Exemple : d i sera la variable distance du site ayant pour identifiant i. d j sera la variable distance du site ayant pour identifiant j. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 40 / 60
Pseudo-code Pseudo-code C est un pseudo-code classique (séquentiel) avec des tests, des boucles... Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 41 / 60
Pseudo-code Pseudo-code C est un pseudo-code classique (séquentiel) avec des tests, des boucles... Le pseudo code se présente par block Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 41 / 60
Pseudo-code Pseudo-code C est un pseudo-code classique (séquentiel) avec des tests, des boucles... Le pseudo code se présente par block Un bloc d Initialisation pour initier les variables locales. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 41 / 60
Pseudo-code Pseudo-code C est un pseudo-code classique (séquentiel) avec des tests, des boucles... Le pseudo code se présente par block Un bloc d Initialisation pour initier les variables locales. Un bloc par réception de message. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 41 / 60
Pseudo-code Pseudo-code C est un pseudo-code classique (séquentiel) avec des tests, des boucles... Le pseudo code se présente par block Un bloc d Initialisation pour initier les variables locales. Un bloc par réception de message. Lors de la réception du message < Message1 > envoyer par le noeud q : Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 41 / 60
Pseudo-code Pseudo-code C est un pseudo-code classique (séquentiel) avec des tests, des boucles... Le pseudo code se présente par block Un bloc d Initialisation pour initier les variables locales. Un bloc par réception de message. Lors de la réception du message < Message1 > envoyer par le noeud q : instructions... Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 41 / 60
Pseudo-code Pseudo-code C est un pseudo-code classique (séquentiel) avec des tests, des boucles... Le pseudo code se présente par block Un bloc d Initialisation pour initier les variables locales. Un bloc par réception de message. Lors de la réception du message < Message1 > envoyer par le noeud q : instructions... Attention : il y aura autant de blocs que de types de messages. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 41 / 60
Réveil spontanné Qui commence? Les processus qui veulent faire une tâche effectueront un réveil spontané. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 42 / 60
Réveil spontanné Qui commence? Les processus qui veulent faire une tâche effectueront un réveil spontané. Les autres processus se réveilleront à la réception d un premier message Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 42 / 60
Un exemple Algorithme réparti de diffusion Initialisation noeud i val i =identifiant i Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 43 / 60
Un exemple Algorithme réparti de diffusion Initialisation noeud i val i =identifiant i Pour tout j Voisins i Envoyer < Valeur, val i > à j. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 43 / 60
Un exemple Algorithme réparti de diffusion Initialisation noeud i val i =identifiant i Pour tout j Voisins i Envoyer < Valeur, val i > à j. Lors de la réception de < Valeur, val j > envoyer par le noeud j if val i < val j : Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 43 / 60
Un exemple Algorithme réparti de diffusion Initialisation noeud i val i =identifiant i Pour tout j Voisins i Envoyer < Valeur, val i > à j. Lors de la réception de < Valeur, val j > envoyer par le noeud j if val i < val j : val i := val j Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 43 / 60
Un exemple Algorithme réparti de diffusion Initialisation noeud i val i =identifiant i Pour tout j Voisins i Envoyer < Valeur, val i > à j. Lors de la réception de < Valeur, val j > envoyer par le noeud j if val i < val j : val i := val j Pour tout j Voisins i Envoyer < Valeur, val i > à j. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 43 / 60
Un exemple Algorithme réparti de diffusion Initialisation Quand un noeud non réveillé reçoit un message il fait le block d initialisation avant de traiter le message. Exemple synchrone Dans l exemple pour aller plus vite, quand un noeud reçoit plusieurs messages il prend le maximum des valeurs reçues. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 44 / 60
Un exemple Exemple synchrone 8 Initialisation noeud i val i =identifiant i 5 3 1 9 Pour tout j Voisins i Envoyer < Valeur, val i > à j. Lors de la réception de < Valeur, val j > envoyer par le noeud j if val i < val j : 4 2 10 val i := val j Pour tout j Voisins i Envoyer < Valeur, val i > à j. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 45 / 60
Un exemple Exemple synchrone 8 Initialisation noeud i val i =identifiant i 5,5 5 9 Pour tout j Voisins i Envoyer < Valeur, val i > à j. 5 3 1 Lors de la réception de < Valeur, val j > envoyer par le noeud j 5 if val i < val j : 10 2 4 Rounde 1 : Noeud actif 5 val i := val j Pour tout j Voisins i Envoyer < Valeur, val i > à j. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 45 / 60
Un exemple Exemple synchrone 8,8 Initialisation noeud i 5,5 4,4 4 3 3 4 8 3,3 4 3 3 8 1 2 8 9 10 Rounde 2 : Noeuds actifs 3,8,4. val i =identifiant i Pour tout j Voisins i Envoyer < Valeur, val i > à j. Lors de la réception de < Valeur, val j > envoyer par le noeud j if val i < val j : val i := val j Pour tout j Voisins i Envoyer < Valeur, val i > à j. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 45 / 60
Un exemple Exemple synchrone 8,8 Initialisation noeud i 9 val i =identifiant i 5,8 8 1 9 1 9,9 Pour tout j Voisins i Envoyer < Valeur, val i > à j. 8 4,5 5 8 5 5 5 3,5 2 5 1 5 5 2 1 1,1 2,2 2 2 9 10 Rounde 3 : Noeuds actifs 1 à 9. Lors de la réception de < Valeur, val j > envoyer par le noeud j if val i < val j : val i := val j Pour tout j Voisins i Envoyer < Valeur, val i > à j. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 45 / 60
Un exemple Exemple synchrone 8,9 Initialisation noeud i 5,8 9 9 9 9 9 9,9 val i =identifiant i Pour tout j Voisins i Envoyer < Valeur, val i > à j. 1,9 8 3,8 9 8 10 Lors de la réception de < Valeur, val j > envoyer par le noeud j 8 8 8 5 8 9 5 if val i < val j : 4,8 5 8 2,5 10 5 10,10 val i := val j Pour tout j Voisins i Envoyer < Valeur, val i > à j. Rounde 4 Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 45 / 60
Un exemple Exemple synchrone 8,9 Initialisation noeud i 10 val i =identifiant i 5,9 9 10 9,10 Pour tout j Voisins i Envoyer < Valeur, val i > à j. 9 9 3,9 9 1,9 10 Lors de la réception de < Valeur, val j > envoyer par le noeud j 9 9 9 10 10 if val i < val j : 4,8 10 2,10 10 10,10 val i := val j Pour tout j Voisins i Envoyer < Valeur, val i > à j. Rounde 5 Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 45 / 60
Un exemple Exemple synchrone 8,10 Initialisation noeud i 5,9 10 10 10 10 10 9,10 val i =identifiant i Pour tout j Voisins i Envoyer < Valeur, val i > à j. 10 3,10 10 10 10 4,10 10 Rounde 6 1,10 10 10 10 10 2,10 10,10 Lors de la réception de < Valeur, val j > envoyer par le noeud j if val i < val j : val i := val j Pour tout j Voisins i Envoyer < Valeur, val i > à j. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 45 / 60
Un exemple Exemple synchrone 8,10 Initialisation noeud i val i =identifiant i 10 9,10 Pour tout j Voisins i Envoyer < Valeur, val i > à j. 5,10 10 3,10 1,10 Lors de la réception de < Valeur, val j > envoyer par le noeud j 10 if val i < val j : 4,10 2,10 10,10 val i := val j Pour tout j Voisins i Envoyer < Valeur, val i > à j. Rounde 7 Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 45 / 60
Un exemple Exemple synchrone 8,10 Initialisation noeud i 5,10 9,10 val i =identifiant i Pour tout j Voisins i Envoyer < Valeur, val i > à j. 3,10 1,10 Lors de la réception de < Valeur, val j > envoyer par le noeud j if val i < val j : 4,10 2,10 10,10 val i := val j Pour tout j Voisins i Envoyer < Valeur, val i > à j. Rounde 8 Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 45 / 60
Un exemple Exemple asynchrone 8 Initialisation noeud i val i =identifiant i 5 3 1 9 Pour tout j Voisins i Envoyer < Valeur, val i > à j. Lors de la réception de < Valeur, val j > envoyer par le noeud j if val i < val j : 4 Le noeud 5 se réveille spontanément. 2 10 val i := val j Pour tout j Voisins i Envoyer < Valeur, val i > à j. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 46 / 60
Un exemple Qualités de l algorithme Avantage(s) Simplicité Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 47 / 60
Un exemple Qualités de l algorithme Avantage(s) Simplicité Inconvenient(s) Processeurs reçoivent plusieurs fois une même information Grand nombre de messages échangés Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 47 / 60
Un exemple Qualités de l algorithme Avantage(s) Simplicité Inconvenient(s) Processeurs reçoivent plusieurs fois une même information Grand nombre de messages échangés Question Comment mesurer la qualité d un algorithme réparti? Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 47 / 60
Complexité séquentielle Complexité des Algorithmes séquentiels Notions Nombre d opérations élémentaires Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 48 / 60
Complexité séquentielle Complexité des Algorithmes séquentiels Notions Nombre d opérations élémentaires Espace mémoire occupé Vocabulaires Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 48 / 60
Complexité séquentielle Complexité des Algorithmes séquentiels Notions Nombre d opérations élémentaires Espace mémoire occupé Vocabulaires Complexité temporelle Question Comment mesurer la qualité d un algorithme réparti? Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 48 / 60
Complexité séquentielle Complexité des Algorithmes séquentiels Notions Nombre d opérations élémentaires Espace mémoire occupé Vocabulaires Complexité temporelle Complexité spatiale Question Comment mesurer la qualité d un algorithme réparti? Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 48 / 60
Nombre de messages Complexité des Algorithmes répartis Réponse Le nombre de message échangés. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 49 / 60
Nombre de messages Complexité des Algorithmes répartis Réponse Le nombre de message échangés. Question Est-ce suffisant? Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 49 / 60
Tailles des messages Tailles des messages Taille d un message Nombre d information que contient le message en binaire. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 50 / 60
Tailles des messages Tailles des messages Taille d un message Nombre d information que contient le message en binaire. Exemples Un mot clé : taille constante O(1) bits Un identifiant : Si il y a n noeuds dans le réseaux, et que l on note de 1 à n les identifiants des noeuds Il faut log 2 (n) bits pour noter l identifiant n Taille : O(log 2 (n)) bits Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 50 / 60
Tailles des messages Comparaison d algorithmes répartis Soit A un algorithme échangeant : O(n) messages de taille O(n log 2 (n)) bits Soit B un algorithme échangeant : O(n 2 ) messages de taille O(log 2 (n)) bits Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 51 / 60
Tailles des messages Comparaison d algorithmes répartis Soit A un algorithme échangeant : O(n) messages de taille O(n log 2 (n)) bits Soit B un algorithme échangeant : O(n 2 ) messages de taille O(log 2 (n)) bits Question Quel est le meilleur algorithme? Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 51 / 60
Tailles des messages Comparaison d algorithmes répartis Question Quel est le meilleur algorithme? L algorithme A échange au total : n n log 2 n bits soit O(n 2 log 2 n) bits Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 52 / 60
Tailles des messages Comparaison d algorithmes répartis Question Quel est le meilleur algorithme? L algorithme A échange au total : n n log 2 n bits soit O(n 2 log 2 n) bits L algorithme B échange au total : n 2 log 2 n bits soit O(n 2 log 2 n) bits Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 52 / 60
Tailles des messages Comparaison d algorithmes répartis Question Quel est le meilleur algorithme? L algorithme A échange au total : n n log 2 n bits soit O(n 2 log 2 n) bits L algorithme B échange au total : n 2 log 2 n bits soit O(n 2 log 2 n) bits A et B sont donc équivalent en terme d information échangées. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 52 / 60
Tailles des messages Taille des messages Réseaux avec du routage IP (Citation wikipédia : http :fr.wikipedia.org wikiipv4) Sur une interface déterminée, une trame a une taille maximale, appelée Maximum Transmission Unit ou MTU. Lorsque la longueur du paquet (datagramme) est supérieure, l information sera fragmentée. La taille maximum supportée par IPv4 (car codée sur 16 bits) est de 64 Ko mais les réseaux ne prennent généralement pas en charge de trames de telles longueurs, en général on trouve des MTU de l ordre de 1 500 octets (Ethernet). Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 53 / 60
Tailles des messages Taille des messages Conclusion : Les messages de grosses tailles seront divisés en petits messages de petites tailles. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 54 / 60
Tailles des messages Taille des messages En algorithmique répartie : La taille de message raisonnable communément admise est O(log 2 n), où n est le nombre de processus. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 55 / 60
Tailles des messages Autres mesures de complexité Question Doit-on considérer la complexité temporelle et la complexité spatiale? Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 56 / 60
Complexité temporelle : Complexité temporelle : Definition Parmi toutes les executions possibles d un algorithme distribué c est l execution qui maximisera le temps, qui définira la complexité temporelle dans le pire des cas. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 57 / 60
Complexité spatiale : Complexité spatiale : Question : Quel est l intérêt de minimiser la mémoire physique? Caractéristiques des réseaux de capteurs : Batterie de durée limitée Peu de capacité mémoire Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 58 / 60
Complexité spatiale : Complexité spatiale : But des algorithmes répartis Faire des algorithmes pour les réseaux non homogènes. Pour cela il faut aussi minimiser la mémoire. Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 59 / 60
Complexité spatiale : Complexités des algorithmes répartis Nombre de messages échangés Taille des messages (exprimé en bits) Temps d exécution (exprimé en unité de temps ou en rondes) Espace mémoire utilisé par chaque machine Algorithmique répartie - Cours de Lélia Blin - L3 MIAGE-ASR 2015 60 / 60