TD-Exercices-3

publicité
2004-2005
Systèmes (distribués et parallèles)
Exercice 1
Soit n valeurs X1, …. Xn. On appelle sommes préfixes des valeurs Xi les sommes Si i=1,2,
….n définies par : S1 = X1; S2 = X1 + X2 ; Si = X1 + X2 + X3 + …+ Xi
1.a) Utiliser les 16 valeurs suivantes pour illustrer les étapes du calcul des sommes préfixes sur une
grille 4x4 : 10, 7, 12, 2, 8, 9, 17, 14, 22, 3, 20, 15, 18, 21, 6, 13.
1.b) Donner un algorithme (écrit en pseudo code) pour calculer les sommes préfixes Si de n
valeurs X1, X2, …, Xn sur une grille pxp de n=p2 processeurs. Chaque processeur de la grille
contient une valeur Xi i=1,2, …, n.
1.c) Calculer la complexité et le taux d’accélération de l’algorithme de 1.b.
2.a) Montrer, en illustrant les différentes étapes pour n = 8 et pour des valeurs X0, X1, X2,
…,X7, que l’algorithme suivant détermine les sommes préfixes d’un ensemble de valeurs
{Xi} i=0,1,2,…,n-1. Chaque valeur XI est stockée dans un processeur Pi, i=0, 1,2, …,n-1
d’un hypercube composé de n=2d processeurs.
Input : Xi sur le processeur Pi,
Output : Somme préfixe Si = X0 + X1 + …+ Xi i=0, 1, 2, …, n-1
Variable locales : n = 2d le nombre de processeurs ; my_id l’identité du
processeur Pi
Processus Pi (Somme préfixe)
begin
result = my_number
msg = result
for i = 0 to d-1 do begin
partner = my_id XOR 2i
send (msg, partner)
receive (number, partner)
msg = msg + number
If (partner < my_id) the result = result + number
endfor
end
2.b) Calculer la complexité et le taux d’accélération de l’algorithme de 1.a.
Exercice 2
Dans une architecture composée de n processeurs, la valeur Xi est contenue dans le
processeur Pi i=0,1,2,…,n-1. Proposer un algorithme (pseudo code) qui détermine et stocke
sur un des processeurs la valeur Y = max {Xi}, i=0,1,…, n-1 dans les cas suivants :
a) réseau linéaire de n processeurs (X0 est contenu dans le processeur P0)
b) une grille pxp de n=p2 processeurs (X0 est sur le processeur correspondant au coin
inférieur gauche)
K.Y. 2004-04-15
Systèmes distribués et Parallélisme
c) un hypercube de n=2d processeurs (X0 est sur le processeur P0)
Exercice 3
On considère un ensemble de n =2d valeurs (xo,x1,..,xn-1) contenues respectivement dans les
processeurs P0,P1, ..,Pn-1 d’un hypercube de dimension d. Proposer un algorithme qui
calcule le nombre de valeurs xi plus petites qu’une valeur spécifique X0 détenue par le
processeur P0. Donner la complexité de votre solution.
Exercice 4
La méthode de communication "One-to-All broadcast" consiste à diffuser une valeur détenue
par un processeur (par exemple P0) vers tous les autres processeurs d’une architecture
multiprocesseurs.
Proposer une méthode de diffusion "One-to-All" d’une valeur X0 dans les cas suivants. Pour
chaque cas, calculer la complexité de la solution.
a) réseau linéaire de n processeurs (X0 est contenu dans le processeur P0)
b) anneau de n processeurs
c) une grille pxp de n=p2 processeurs (X0 est sur le processeur correspondant au coin inférieur
gauche)
d) un hypercube de n=2d processeurs (X0 est sur le processeur P0)
Exercice 5
La méthode de communication "All-to-All broadcast" consiste à diffuser chaque valeur Xi
détenue par un processeur (par exemple Pi) vers tous les autres processeurs Pj d’une
architecture multiprocesseurs. A la fin de la diffusion, chaque processeur Pj contient
l’ensemble des valeurs {Xi}. Proposer une méthode de diffusion "All-to-All" d’un ensemble
de valeurs {Xi} dans les cas suivants et calculer pour chaque cas la complexité de la méthode
proposée :
a) anneau de n processeurs (Xi est sur le processeur Pi)
c) tore (une grille avec retour) pxp de n=p2 processeurs (Xi est sur le processeur Pi)
d) un hypercube de n=2d processeurs (Xi est sur le processeur Pi)
Exercice 6
Un cycle dans un graphe est un chemin qui commence et finit par le même noeud. Un cycle
de longueur n contient n arcs. Montrer qu’il n’y a pas de cycle de longueur impaire dans un
hypercube de n = 2d processeurs.
Exercice 7
Le plongement d’un graphe G=(V,E) dans un hypercube de dimension d consiste à établir une
correspondance 1-1 de V vers les nœuds de l’hypercube telle que si (i,j)∈E est un arc du
graphe, alors les processeurs f(i) et f(j) correspondants sont adjacents dans l’hypercube.
a) Proposer une méthode de plongement d’un réseau linéaire de p=2d processeurs dans un
hypercube de dimension d.
b) Proposer un plongement d’une grille de p=2d processeurs dans un hypercube.
K.Y. 2004-04-15
Systèmes distribués et Parallélisme
Téléchargement