Exercice 2 : Loi de Amdhal
On a un algorithme de traitement d’image 1000 x 1000 en niveau de gris (1 octet par pixel)
qui est décomposé comme suit :
1. Lecture de l’image : un octet à la fois (système de fichier séquentiel)
2. Réduction des dimensions de l’image à 100 x 100 : le coût pour chaque pixel de
l’image finale est en moyenne 2000 opérations
3. Intégration de l’image réduite : 8 opérations en moyenne par pixel
4. Sauvegarde de l’image filtrée réduite : un octet à la fois
On considère que toutes les opérations (+,x,...,lecture/écriture d’un octet) ont le même coût
unitaire.
a) Calculez Rs
Etapes 1 et 4 sont séquentielles ⇒ Coût de ces 2 étapes : 10 6+4.104
Coût total de l’algo : 106 (E1) + 2000.104 (E2) + 8.104(E3)+4.104(E4) ⇒
Rs=(E1+E4)/(E1+E2+E3+E4) ≃0.05 ⇒ 5%
b) Calculez l’accélération maximale possible
On en déduit que Smax=1/Rs = 20
c) Calculez le nombre de processeurs max pour avoir une efficacité de 80%
Ep(n)= 1/(1+(p-1).Rs) = 0.8 ⇒ p=6
Exercice 3 : Évaluation de performances
Même contexte avec les questions suivantes:
a) Donnez le degré de parallélisme de chaque partie de cet algorithme
Degré de parallélisme :
E1 : 1
E2 : 100 x 100 = 104
E3 : 100 x 100 = 104
E4 : 1
b) Donnez le coût élémentaire de chaque partie (nombre d’opérations à effectuer sur un
processeur lorsqu’on utilise le maximum de parallélisme).
Coûts élémentaires :
E1 : 106
E2 : 2000
E3 : 8
E4 : 4.104
c) En déduire l’accélération maximale possible.
Accélération Max :
Smax = T1/Tmax = 106 + 2000.104 + 8.104 + 4.104 / 106 + 2000 + 8 + 4.104 ≃ 20,27
d) Calculez les temps, accélérations et efficacité atteignables en théorie avec 10
processeurs
T10 = ceil(1/10).106 + ceil(104/10).2000 + ceil(104/10).8 + ceil(1/10).4.104 = 106 + 2.106 + 8.103
+ 4.104 = 3,048.106
S10 = T1/T10 = 21120000/3048000 ≃6,93
E10 = 6,93/10 = 0,69 ⇒ 69%
e) Donnez le nombre de processeurs donnant l’efficacité la plus proche de 50% (sans y
être inférieur)
On cherche P tel que Ep >= 1/2
Ep = 21120000 / ((1040000 + |104/p| * 2008) * p) = ½
= 21120000 / ((1040000 + 20080000/p) * p) = ½
= 21120000 / (1040000 * p + 20080000)
⇒ p = 21,3 donc 21 ou 22