• Aucun résultat trouvé

Algorithmes Parallèles et Distribués 2. Algorithmes distribués Franck Butelle

N/A
N/A
Protected

Academic year: 2022

Partager "Algorithmes Parallèles et Distribués 2. Algorithmes distribués Franck Butelle"

Copied!
10
0
0

Texte intégral

(1)

Algorithmes Parallèles et Distribués

2. Algorithmes distribués

Franck Butelle

LIPN, Université Paris 13 Formation Ingénieurs SupGalilée Info 3

11/2021

(INFO 3) APD 2–Algo distribués 2021 1 / 37

Plan

1 Introduction 3

2 Modélisation et hypothèses 5

3 Notion d’algorithme distribué 15

4 Rappels de complexité : notations de Landau 25

5 Algorithmes distribués classiques (1ère partie) 28

(INFO 3) APD 2–Algo distribués 2021 2 / 37

Introduction

Plan de la section

1 Introduction 3

2 Modélisation et hypothèses 5

3 Notion d’algorithme distribué 15

4 Rappels de complexité : notations de Landau 25

5 Algorithmes distribués classiques (1ère partie) 28

Introduction

Introduction

Définition Informelle

Un algorithme distribué est spécifié par rapport à des

sites/processus/nœuds reliés par un réseau physique, ces nœuds sont dits faiblement couplés.

Remarques

Les algorithmes distribués sont généralement conçus par échange de messages et dans le modèle SPMD.

Un système client/serveur n’est pas considéré comme un système distribué.

(2)

Modélisation et hypothèses

Plan de la section

1 Introduction 3

2 Modélisation et hypothèses 5

Système distribué 6

Petit lexique de théorie des graphes 7

Modèle de réseau point-à-point 9

Processus 10

Modèles de réseaux 11

Propriétés du système de communication 12

Réseaux synchrones et asynchrones 14

3 Notion d’algorithme distribué 15

4 Rappels de complexité : notations de Landau 25

5 Algorithmes distribués classiques (1ère partie) 28

(INFO 3) APD 2–Algo distribués 2021 5 / 37

Modélisation et hypothèses Système distribué

Modélisation

Définition

Un système distribuéS est une structure logicielle et matérielle distribuée en un réseau point-à-point asynchrone d’entités séquentielles

communicantes.

Réseau d’interconnexion←→ sites + système de communication GrapheG=(E,V), connexe, simple et en général symétrique.

V : ens. des entités (sommets, sites, processus) deS;

EV2 : modélise les communications (arêtes, canaux, liens).

|V| =n : nbre de processus/sites du réseau (ordrede G).

|E| =m : nbre de canaux de communication (taillede G).

Chaque site de S possède une mémoire locale non partagéede capacité bornée et au moins 1 proc.

(INFO 3) APD 2–Algo distribués 2021 6 / 37

Modélisation et hypothèses Petit lexique de théorie des graphes

Petit lexique de théorie des graphes

Grapheorienté: arcs et non arêtes

Connexe: il existe au moins un chemin entre toute paire de nœuds Complet: il existe une arête entre toute paire de nœuds

Simple: pas d’arête/arc double ni d’arête/arc dex àx (boucle).

Arbre: graphe connexe sans cycle.

Degré d’un sommet : nombre d’arêtes liées à ce sommet

Distanceentre deux sommets : la longueur du plus court chemin entre ces sommets en nbre d’arêtes.

Diamètre d’un graphe : distance maximale entre deux sommets Graphe valué ou pondéré : ajout d’une fonction de valuation en général sur les arêtes

Distance dans un graphe valué : somme des poids des arêtes (affecte aussi la notion de diamètre)

Nous ne considérerons que des graphes simples connexes, souvent non orientés.

Modélisation et hypothèses Petit lexique de théorie des graphes

Modélisation suite

Les sites de S communiquent uniquement par messages : S est un modèle asynchrone à transmission de messages (Asynchronous Message-Passing Mo- del)

l’échange de message est le coût dominant

toute entité non fautive deS peut continuer à fonctionner indépendamment

Chaque site est identifié par un id propre I. I est muni d’un ordre total.

pas d’horloge globaleou variableou configuration globale

(3)

Modélisation et hypothèses Modèle de réseau point-à-point

Modélisation réseau

Modèle de réseau point-à-point :

Orientation locale : tout site peut distinguer ses ports d’E/S Identités des voisins inconnues

Communication sans perte de message : en l’absence de défaillance, tout mesg est reçu au bout d’un temps fininon borné sans modif.

La taille des messages est bornéef(n,log2(Idmax))

(INFO 3) APD 2–Algo distribués 2021 9 / 37

Modélisation et hypothèses Processus

Modélisation des sites/processus

Dans un système distribuéS tous les sites sont symétriques Symétrie : les sites jouent tous le même rôle

Symétrie totale : si pas d’identité : absolument indiscernables Mais tous les sites n’exécutent pas forcément tjrs la même action, ni simultanément, ni instantanément.

Pb classique de l’algo distribuée : briser la symétrie en donnant à l’un d’eux un privilège.

Problème de l’exclusion mutuelle : lecteurs/rédacteurs, producteur/consommateur, dîner des philosophes, etc.

Problème de l’élection : un site unique deS doit être élu les autres dans l’état battu.

Ces pbs n’ont de sens que dans un système suffisamment fiable...

(INFO 3) APD 2–Algo distribués 2021 10 / 37

Modélisation et hypothèses Modèles de réseaux

Modèles de réseaux

Réseaux centralisés: un seul et unique «élu» / les autres sont

«battus»

Ï Un système clients/serveur utilise un réseau centralisé.

Réseaux avec identités: modèle standard : identités distinctes. Un site connaît son identité mais pas celles des autres.

Réseaux anonymes: Sites indiscernables (symétrie totale).

Ï "un ou quelques initiateurs identifiés : symétrie brisée :réseau

centralisé anonyme

Légende pour les prochaines diapos : modèle standard : valeurs du modèle standard.

Modélisation et hypothèses Propriétés du système de communication

Hypothèses sur les propriétés du système de communication

G=(V,E) est connexe délais d’acheminement

finis et non bornés: système asynchrone

x Au contraire : délais d’acheminement à délais bornés : système ABD :

∃τt.q. tous les délais sont inf. àτ(devient une «unité de temps»).

Tout mesg envoyé à un site est placé dans sa file d’attente.

L’ordonnanceur du réseau permet aux sites de

traiter leur file d’attente en un délai fini.

à chaque ligne de communication est associé untampon de taille finie non bornée

Les messages sont traités dans leur ordre d’arrivée (si simultanés alors ordre arbitraire)

L’ordre de réception est égal à l’ordre d’émission (pas de déséquencement : «fifo»)

x Au contraire : ordre arrivée peut être différent (non «fifo»)

(4)

Modélisation et hypothèses Propriétés du système de communication

Hypothèses sur les propriétés (suite)

Trois modes de transmission peuvent être utilisés : «simplex»

(unidirectionnel), «half-duplex» (bidirectionnel à l’alternat), ou

«full-duplex» (bidirectionnel).

Aucun message n’est créé par le système de routage Pas de duplication de message

x Au contraire : tout mesg peut être dupliqué lors de sa transmission Transmissions sans altération ni modification.

Le début d’une exécution d’un algo distri. est enclenché parl’éveil spontanéd’un

sous-ens. qcq non vide de V: le(s) initiateur(s). Dans un réseau non anonyme, les seules infos init. d’un site sont

son identité et la distinction de ses portes d’E/S.

(INFO 3) APD 2–Algo distribués 2021 13 / 37

Modélisation et hypothèses Réseaux synchrones et asynchrones

Réseaux synchrones et asynchrones

Chaque site est doté d’une «horloge physique» locale

Ï Asynchrones si on ne fait rien.

les horloges sont dites synchrones si elles sont incr. en même temps.

Ï En l’absence de défaillance, tout mesg envoyé à la datet est reçu (et traité) par un voisin à la datet+1 (temps local de l’émetteur).

Ï Lasynchronicité totaleest obtenue si les horloges sont synchrones et qu’elles donnent la même valeur.

(INFO 3) APD 2–Algo distribués 2021 14 / 37

Notion d’algorithme distribué

Plan de la section

1 Introduction 3

2 Modélisation et hypothèses 5

3 Notion d’algorithme distribué 15

Définition 16

Sûreté et Vivacité 17

Initiateurs 18

Actif/Passif 19

Terminaison 20

Algorithmes distribués synchrones 22

complexité temporelle 23

Complexité en nbre de message échangés 24

4 Rappels de complexité : notations de Landau 25

5 Algorithmes distribués classiques (1ère partie) 28

Notion d’algorithme distribué Définition

Notion d’algorithme distribué

Définition

Unalgorithme distribué exécuté surS est un système de transitions A=(C,,I).

C : ens. des configurations deS.→⊆C×C : une relation binaire de transition et IC : sous-ens. des conf. initiales deS.

Définition

Vu du point de vue du siteP de S, un algorithme distribué est aussi un système de transitions basé sur les évt : calcul local, envoi, réception de mesg.

(S,A)est une collection de psséquentielscommuniquants (indép. de toute architecture et de tout language de programmation).

(5)

Notion d’algorithme distribué Sûreté et Vivacité

Sûreté et Vivacité

Alpern et Schneider - 1985

sûreté(safety) : un événement indésirable n’arrivera jamais

Ï violation de l’exclusion mutuelle

Ï incohérence dans les données

Ï . . .

vivacité(liveness) : un événement désirable finira par arriver

Ï un message sera délivré à son destinataire

Ï une ressource demandée sera rendue disponible

Ï un algorithme se termine (indécidable dans le cas général. . .) La vivacité est plus difficile à établir que la sûreté.

(INFO 3) APD 2–Algo distribués 2021 17 / 37

Notion d’algorithme distribué Initiateurs

Initiateurs

Un siteinitiateurdémarre de manière spontanée :

Ï il passe dans l’état actif.

Un site non initiateur est initialement inactif.

Ï A la réception d’un premier mesg, il passe dans l’état actif.

Un algo. distribué est enclenché parp initiateurs indépendants (1pn), simultanément ou non.

Unalgo. centraliséest un algo. qui nécessitep=1pour toute exécution.

(INFO 3) APD 2–Algo distribués 2021 18 / 37

Notion d’algorithme distribué Actif/Passif

Actif/Passif

Un site est soit dans l’état actif soit dans l’état passif.

Seuls des sites actifs peuvent envoyer des mesgs d’activation Un site peut passer de l’état actif à passif à tout instant

Un site ne peut passer de l’état passif à actif qu’à la réception d’un message

Si tous les sites sont passifs et qu’aucun mesg ne circule plus,S a atteint une configuration stable, il est dit «quiescent» :

terminaison ou inter-blocage global.

Notion d’algorithme distribué Terminaison

Terminaison

Définition

Un algo. distribué setermine par processus (explicitement) lorsque pour toute exéc. tous les sites deS atteignent un état stable quiescent : terminaison classique avec détection de terminaison.

A partir d’une certaine «date», tous les sites savent que l’algo est terminé ou en phase de terminaison.

Définition

La terminaison par message (implicite): il n’y a plus de message en circulation. L’algo. est dit alorssans détection de terminaison.

"Il existe des algos sans terminaison.

(6)

Notion d’algorithme distribué Terminaison

Algo. guidé par réception de mesg.

Hyp. classique : à part pour le 1er message (activation) un site ne peut effectuer une action qu’à la réception de mesg : il est dit«message driven».

Théorème

Soit un syst. distribué S et deux algos distribués sur S : un algo quelconque A et un algoA0 message-driven. Notons CA(n) etCA0(n) le nbre de

messages échangés resp. par AetA0, on a CA(n)CA0(n).

Un algo. distri. synchrone guidé par message est dit «Time and Message driven».

(INFO 3) APD 2–Algo distribués 2021 21 / 37

Notion d’algorithme distribué Algorithmes distribués synchrones

Algorithmes distribués synchrones

Hypothèses classiques pour un environnement synchrone :

1 Chaque site enclenche une exécution sur une «pulsation», les pulsations sont numérotées.

2 On notera sur_pulsation(num)la primitive concernée, le code correspondant doit être terminé avant pulsation suivante.

3 Dans une primitive sur_pulsation(num), un site émet au plus un mesg.

4 Un mesg émis dans la pulsation p est reçu et traité après l’exéc. de sur_pulsation(p) et avantp+1.

5 Il n’y a pas d’envoi de mesg dans sur_reception

(INFO 3) APD 2–Algo distribués 2021 22 / 37

Notion d’algorithme distribué complexité temporelle

Complexité temporelle d’un algo. distribué asynchrone

Solution 1 :

exécution de l’algo sur un système distribué synchrone : complexité en nbre d’étapes.

Solution 2 (préférable)

Longueur de la plus longue chaîne de dépendance causale : SiAalorsB, SiB alorsC,. . .

Notion d’algorithme distribué Complexité en nbre de message échangés

Complexité en nbre de message échangés

Les calculs locaux seront considérés comme négligeables par rapport au temps de transmission des messages :

les messages sont la composante fondamentaled’un algo distribué il faut compter le nbre de messages échangés voir le nbre de bits échangés si mesgs de tailles quelconques

(7)

Rappels de complexité : notations de Landau

Plan de la section

1 Introduction 3

2 Modélisation et hypothèses 5

3 Notion d’algorithme distribué 15

4 Rappels de complexité : notations de Landau 25

5 Algorithmes distribués classiques (1ère partie) 28

(INFO 3) APD 2–Algo distribués 2021 25 / 37

Rappels de complexité : notations de Landau

Rappels de complexité : Notations de Landau

Soit une fonctionf(n), on cherche à donner un ordre de grandeur à cette fonction quandn→ +∞(N,C,C0 etC1 sont des constantes strict. positives):

f(n)O(g(n)) « Grand O »

C,N,n>N,|f(n)| ≤C.|g(n)|, g est un majorant def à une constante près.

f(n)(g(n)) « Grand Oméga »

C,N,n>N,|f(n)| ≥C.|g(n)|, g est un minorant def à une cste près.

f(n)Θ(g(n)) « Grand Thêta »

C0,C1,N,n>N,C0.|g(n)| ≤f(n)C1.|g(n)|, f est «soumise» à g Exemple

Sif(n)=n2+nlog2(n)alors f(n) est enO(n3),O(n2),(nlog(n)),Θ(n2).

(INFO 3) APD 2–Algo distribués 2021 26 / 37

Rappels de complexité : notations de Landau

Rappels sur les sommes de suites

Suite arithmétique :

Un+1=Un+r;Un=U0+nr;

n X

i=0

Ui=(n+1)U0+Un 2 Cas particulier :U0=0 ;r=1 ;

n X

i=0Ui=1+2+ · · · +n=(n+1)n 2 Suite géométrique(q6=1) :

Un+1=q×Un;Un=U0qn;

n X i=0

Ui=U01qn+1 1q Cas particulier :U0=1 ;q=2 ;

n X

i=0

Ui=1+2+4+ · · · +2n=2n+11 Série: généralisation de la notion de somme finie :

+∞X

i=02i=2 en effet :

n X

i=01/2i=1(1/2)n+1

11/2 =2(1/2)n

Algorithmes distribués classiques (1ère partie)

Plan de la section

1 Introduction 3

2 Modélisation et hypothèses 5

3 Notion d’algorithme distribué 15

4 Rappels de complexité : notations de Landau 25

5 Algorithmes distribués classiques (1ère partie) 28

Éveil distribué par inondation 29

Éveil dans des réseaux particuliers 31

Algorithme traversant 32

(8)

Algorithmes distribués classiques (1ère partie) Éveil distribué par inondation

Éveil distribué

Hyp. : Graphe connexe quelconque, liens FIFO.

Problème :(Wake-up problem) éveiller l’ensemble des sites à partir d’un sous-ensemble.

Idée : inonder le réseau. Un non initiateur continue la diffusion à tous sauf à celui qui la réveillé.

Eveil:siest_initiateuralors

envoie<éveil>à tous les voisins actifvrai;

finsi

sur_receptionde<éveil>dev:

sinon actifalors

envoyer<éveil>à tous les voisins saufv.

actifvrai;

finsi

/∗ Terminaison par .... ? ∗/

Complexité en messagessiun seul initiateuretle graphe est un arbre ? Complexité en messagessikninitiateursetle graphe est un arbre ?

(INFO 3) APD 2–Algo distribués 2021 29 / 37

Algorithmes distribués classiques (1ère partie) Éveil distribué par inondation

Complexités de l’éveil distribué

Graphe quelconque (mais connexe)

nbre de messages : 2mmessages

complexité en temps : O(D) messages (D est le diamètre du graphe) Optimal en temps et en messages

(INFO 3) APD 2–Algo distribués 2021 30 / 37

Algorithmes distribués classiques (1ère partie) Éveil dans des réseaux particuliers

Éveil dans des réseaux particuliers

Dans unarbrepar inondation :

Ï 1 initiateur :n1 messages

Ï tous initiateurs : 2(n1)messages.

Ï Sik initiateurs :n+k2 messages.

Dans ungraphe complet, par inondation :O(n2) messages. Il existe un algo (d’élection) permettant d’obtenir O(nlogn)messages.

Algorithmes distribués classiques (1ère partie) Algorithme traversant

Parcours en profondeur d’abord : DFS1

Depth First Search

Hyp. : Un seul initiateur.

Pb.: Tous les sites doivent être visités : algo dittraversant.

Méthode:

lors de la première visite, un site doit se rappeler de l’émetteur, créer la liste des autres voisins à parcourir, leur envoyer le message

«séquentiellement», attendre la réponse de chacun avant de continuer.

Si déjà visité et réception du message : réponse immédiate

(9)

Algorithmes distribués classiques (1ère partie) Algorithme traversant

Algo DFS1

Eveil:siest_initiateuralors

marquévrai; nonvisitésVoisins; parent−1; visite() finsi

sur_receptionde<dfs>dey:

simarqué = vraialors

nonvisitésnonvisités −{y};envoyer<back>ày.

sinon/∗ visité pour la première fois ∗/

marquévrai; parenty; nonvisitésVoisins−{y}; visite();

finsi

sur_receptionde<back>dey:

visite();

procedurevisite() : sinonvisités6=;alors

xpremier(nonvisités); nonvisitésnonvisités −{x}; envoyer<dfs>àx

sinon/∗ Plus de voisins à visiter on le signale et on s’arrete ∗/

siparent>0alorsenvoyer<back>à parent terminaison

finsi

(INFO 3) APD 2–Algo distribués 2021 33 / 37

Algorithmes distribués classiques (1ère partie) Algorithme traversant

Complexité algo traversant DFS1

Exactement 2m messages échangés (optimal)

2m unités de temps car algo se déroule séquentiellement ! (non optimal (n))

Fonctionne même sans l’hypothèse d’identités distinctes Peut-on faire mieux ?

(INFO 3) APD 2–Algo distribués 2021 34 / 37

Algorithmes distribués classiques (1ère partie) Algorithme traversant

Accélérer le traversant

Pb. avec le traversant : les sites doivent être visités séquentiellement. Mais : On peut éviter les messages qui déclencheront des mesgs<back>:

Ï sur réception de<dfs>faire une diffusion d’un mesg.<visité> à tous ses voisins (sauf parent).

Ï ils vont répondre par<ack>

Ï donc on sait qui est visité ou pas : on n’envoie qu’à ceux non visités : O(n)en temps ; surcoût en messages enO(m).

Algorithmes distribués classiques (1ère partie) Algorithme traversant

DFS1 dans des réseaux particuliers

si les sites connaissent la topologie

graphe enanneau : algo : l’initiateur choisit un sens et le<dfs> est propagé toujours dans ce sens jusqu’à revenir à l’initiateur

Ï nmessages,nunités de temps.

graphe enarbre: 2n2 messages et 2n2 unités de temps. Bonus : le parcours donne un anneau virtuel.

graphe complet: algo : l’initiateur envoie séquentiellement à tous ses voisins qui se contentent de renvoyer un<back>

Ï 2(n1)messages et 2(n1)unités de temps.

(10)

Algorithmes distribués classiques (1ère partie) Algorithme traversant

Conclusions sur le traversant

Permet de faire passer un jeton donc un droit d’accès spécifique à tous et un à la fois (exclusion mutuelle).

Permet de faire de la diffusion d’info mais pas efficace.

Dans des graphes qcq,(m) messages

Ï simest grand algo inefficace

Ï Idée :créerG0 connexe et couvrantG : l’ens. de ses nœuds mais avec un min. d’arêtes pour être connexe : donc un arbre !

Exercice 1

Exercice : écrire l’algo multi-DFS : parcours en prof. d’abord avec plusieurs initiateurs. Note : nécessite id. toutes distinctes

(INFO 3) APD 2–Algo distribués 2021 37 / 37

Références

Documents relatifs

Parallélisme au niveau matériel Processeur super-scalaire.

1962 premier ordinateur multiprocs (4) mais système non parallèle 1964 premier ordi double cœur et premier ordinateur à structure parallèle.. 1965 premier

Tout mesg envoyé à un site est placé dans sa file d’attente.. L’ordonnanceur du réseau permet aux

Si on a un algo d’élection alors on a un algo d’AC (en ajoutant 2m messages et D unités de temps). AC −→ élection (en ajoutant n − 1 messages et h unités de temps, où h est

pire des cas atteint pour un anneau avec identités en ordre décroissant et tous initiateurs... Donc 3n −

Ï Rang dans MPI_COMM_WORLD = rang absolu dans l’application Utilisé pour les envois / réception de messages. La norme MPI Structure d’un

2 Modèles de communications Passage de messages Mémoire Virtuelle RDMA.. 3 La norme

int MPI_Scatter( void ∗sendbuf, int sendcount, MPI_Datatype sendtype, void ∗recvbuf, int recvcount, MPI_Datatype recvtype, int root, MPI_Comm comm);. Processsus root envoie