K.Y. 2004-04-15 Systèmes distribués et Parallélisme
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)