Sources de parallélisme
Parallélisme de données
Pour i de 1 à n faire
A(i) <- A(i)+4
Fin Pour
On parallélise la boucle ‘Pour’ : toutes ses itérations sont parallèles
T1=3n
p=n
Tn=1
Publicité
Sn=T1/Tn= n
En= Sn/p= 1
Parallélisme de tâches
t1 : a<- a+2
t2 : b<- b-4
t3 : d<- d+9
t4 : c<- a*b-d
Ici t1 ; t2 et t3 peuvent se faire en parallèle car indépendantes et t4 ne peut se faire que qu’après car elle utilise des variables que t1 ,t2 et t4 modifient.
T1=5 (une opération coûte 1 unité de temps)
Publicité
p=3
T3=3 (1 unité de tempspour t1,t2 et t3 simultanément puis 2 unités pour t4)
S3=T1/T3= 5/3
E3= S3/3= 5/9
Parallélisme de flux
Pour i de 1 à n faire
C(i)<-((A(i)+2)*B(i))/3
Fin Pour
On définit les 3 opérations O1,O2 et O3 pour chaque itération qui seront affectées respectivement aux processeurs P1,P2 et P3
Publicité
O1(i) : A(i)+2
O2(i) : …..*B(i)
O3(i) : …….../3 ----→ C(i)
P1 (O1)
P2(O2)
P3(O3)
1 2 3 4 5
O1(1) O1(2) O1(3) O1(4) ……
O2(1) O2(2) O2(3)
Publicité
O3(1) ->C(1) O3(2)
O1(n)
O2(n-1)
O3(n-2)
O2(n)
O3(n-1) O3(n) -> C(n)
T1= 3*n p=3 Tp = n+(p-1) Dans ce cas T3 = n+2 S3= T1 /T3 =3n/(n+2) presque 3 E3= S3/p =3n/3(n+2) = n/(n+2) presque 1