1
1
Calcolo Parallelo
Efficienza e Scalabilitàdi algoritmi e software
in ambienti di Calcolo Parallelo
Laura Antonelli
EfficienzaEfficienza 2
Problema
Valutare l’efficienza di un algoritmo
in ambiente di calcolo parallelo
Cosa si intende per “EFFICIENZA” ?
Efficienza 3
Efficienza di un algoritmo sequenziale
COMPLESSITA’ di TEMPO T(n)Numero di operazioni eseguite dall’algoritmo
COMPLESSITA’ di SPAZIO S(n)
Numero di variabili utilizzate dall’algoritmo
Efficienza 4
Esempio: calcolo della somma di n=16 numeri
ALGORITMO SEQUENZIALE1 studente
Passi temporali
numero di addizioni = 15
passi temporali = 15
complessità di tempo
T(n)=n-1 addizioni
tcalc= tempo di esecuzione di 1 addizione
T1=15 tcalc
1234
56789
1011121314
15
2
Efficienza 5
In un algoritmo sequenziale
Il numero complessivo di operazioni
determina anche
il numero dei passi temporali
(tempo di esecuzione dell’algoritmo)
Efficienza 6
In un algoritmo parallelo
Si può ancora legare
il tempo di esecuzione al numero delle operazioni
che costituiscono l’algoritmo
?
Efficienza 7
Esempio: calcolo della somma di n=16 numeri
ALGORITMO PARALLELO2 studenti
Passi temporali
numero di addizioni = 15
MA
passi temporali = 8
12
34
56
7
8
• 1addizione
14 addizioni
(7 per ciascuno studente)
Passi temporali 1-7:
Passo temporale 8:
T2=8 tcalc
Efficienza 8
Esempio: calcolo della somma di n=16 numeri
ALGORITMO PARALLELO4 studenti
Passi temporali
numero di addizioni = 15
MA
passi temporali = 5
1 addizione
1
2
3
4
5
12 addizioni
2 addizioni
Passi temporali 1-3:
Passo temporale 4:
Passo temporale 5:
T4=5 tcalc
3
Efficienza 9
Esempio: calcolo della somma di n=16 numeri
ALGORITMO PARALLELO8 studenti
numero di addizioni = 15
MA
passi temporali = 4
Passo temporale 1: 8 addizioni
passitemporali
Passi temporali
1
2
3
4
Passo temporale 2: 4 addizioni
Passo temporale 3: 2 addizioni
Passo temporale 4: 1 addizione
T8=4 tcalc
Efficienza 10
Nell’algoritmo parallelo della somma
Il numero delle operazioni
dell’algoritmo Parallelo
NON è legato al
numero dei passi temporali
Efficienza 11
Infatti …
Un calcolatore parallelo è in grado di eseguire più operazioni
Il tempo di esecuzione non è proporzionale al numero di operazioni fl. p. effettuate
La sola complessità di tempo non è adatta a misurare l’efficienza di un algoritmo parallelo
allo stesso passo temporale(esecuzione parallela di più operazioni)
Efficienza 12
… e allora
Come misurare
l’efficienza
di un algoritmo parallelo?
4
13
OSSERVAZIONE
Se Tp è il tempo di esecuzione su p (p=1, 2, 3,…)
utilizzando p = 2
il tempo di esecuzione T1 dovrebbe essere il doppio di T2
2T
T
2
1
utilizzando p = 4
il tempo di esecuzione T1 dovrebbe essere il quadruplo di T4
4T
T
4
1
Efficienza 14
In generale
Utilizzando p processori
il tempo di esecuzione T1 dovrebbe essere p volte Tp,
cioè il loro rapporto vale:
pT
T
p
1
Utilizzando p processori
il tempo di esecuzione parallelo si dovrebbe ridurre di circa p volte
rispetto al tempo di esecuzione sequenziale
Efficienza 15
Speedup
Lo speedup misura la riduzione del tempo di esecuzione dell’algoritmo eseguito su p processori
rispetto all’esecuzione su 1 processore,
in generale:
p
1p T
TS
Si definisce Speedup il rapporto
pSp
pSidealep
SPEEDUP IDEALE
Efficienza 16
Esempio: calcolo della somma di n=16 numeri
L’algoritmo su 8 processori è il più veloce.E’ più veloce di 3.75 volte di quello su 1 processore
(ma non di 8 volte come ci aspettavamo …)
3.75
3.00
1.88
1.00
4tcalc8
5tcalc4
8tcalc2
15tcalc1
Tppp
1p T
TS
Maggiore riduzione del tempo ovvero maggiore aumento della velocità di
esecuzione
Analizziamo lo speedup al variare di p
5
Efficienza 17
Domanda
p Tp
1 15tcalc
2 8tcalc
4 5tcalc
8 4tcalc
In generale quanto vale Tp?
2k ? tcalc
Perché Tp non si riduce proporzionalmente a p?
Efficienza 18
P3P0 P2P1
P5 P6 P7P4tcalc
1
2
3
4
n/p –1
Log p= max profondità dell’albero
Esempio: p=8, n=16
operazioniper ottenerela sommadei dati locali
Quanto vale Tp ? contiamo i passi temporali…
Efficienza 19
In generale: calcolo di Tp
ALGORITMO PARALLELO della somma di n numerisu p=2k processori
n = 16
tcalc= tempo di esecuzione di 1 addizione
p=1 T1=15 tcalc
p=2 T2=8 tcalc= (7+1) tcalc
p=4 T4=5 tcalc= (3+2) tcalc
p=8 T8=4 tcalc= (1+3) tcalc
………………
p=2kpn
Tp= ( -1 +log2 p) tcalc
20
Oh = pTp – T1
OVERHEAD totale
L’OVERHEAD totale misura quanto lo speedup differisce da quello ideale
Perché Sp non è proporzionale a p?
pT
TS
p
idealep 1
Tp = (Oh + T1) /p
1T
Op
TO
pT
)/pT (O
T
T
T(n)S
1
h1h
1
1h
1
p
1p
In generale l’overhead in informatica misura lo “spreco” di risorse per raggiungere un determinato obiettivo
Lo speedup effettivo dipende dal rapporto tra lo speedup ideale e l’overhead totale
6
Efficienza 21
T1 = n-1
Tp = n/p - 1 + log2 p
Oh = p Tp - T1 = p (n/p -1 + log2 p ) – (n-1) =
=O(p log2 p) ≈ n -p + p log2 p –n +1
p Oh
2 2
4 8
8 24
2k p log2 p
All’aumentare di p anche l’overhead aumenta!
Calcolo dell’overhead
ALGORITMO PARALLELO della somma di n numerisu p=2k processori
Efficienza 22
Riassumendo: calcolo della somma con n=16 numeri e p=8
Lo speedup misura la maggiore riduzione di tempo, (ovvero il minor tempo di esecuzione possibile)
MA….L’overhead misura il maggior scarto dallo speedup ideale
(ovvero il maggior “spreco” di risorse!!)
Come capire se la riduzione ottenuta dallo speedup produce un effettivo guadagno in efficienza?
(ovvero se il parallelismo è vantaggioso
rispetto all’inevitabile overhead introdotto?)
Efficienza 23
OSSERVAZIONE:calcolo della somma di n=16 numeri
p Speed-up ottenuto
Speed-up ideale
2 1.88 2
4 3.00 4
8 3.75 8
Lo speedup su 2 processori è
“il più vicino” allo speed-up ideale..
L’algoritmo parallelo su due processori
è quello più veloce in rapporto alle risorse utilizzate
(il guadagno ottenuto è commisurato alle risorse in uso)Efficienza 24
IDEA!calcolo della somma di n=16 numeri
… se si rapporta lo speedup al numero di processori
p Sp
2 1.88 0.94
4 3.00 0.75
8 3.75 0.47
Si ottiene una misura dello sfruttamento delle risorse
di calcolo
(il massimo per p=2)
p
Sp
Rapporto più grande
L’utilizzo di un maggior numero di processori NON è sempre garanzia di algoritmi paralleli efficienti
7
Efficienza 25
Efficienza
L’efficienza misura se e quanto l’algoritmo parallelo
sfrutta il parallelismo del calcolatore
p
SE p
p
1p
SE
idealepideale
p
EFFICIENZA IDEALE
Si definisce efficienza Ep il rapporto Sp su p
Efficienza 27
E’ possibile ottenerespeedup prossimi allo
speedup ideale ?
Domanda
Efficienza 28
una parte relativa alle operazioni che
sono eseguite (necessariamente) in sequenziale
Il tempo
di esecuzione sequenziale T1 si può decomporre in 2 parti:
Tseq =T1 Tpar =(1-)T1
T1 = +Tseq Tpar
una parte relativa alle operazioni che POSSONO essere eseguite in parallelo
OSSERVAZIONE:
una parte relativa alle operazioni che
sono eseguite (necessariamente) in sequenziale
Efficienza 29
Il tempo
di esecuzione sequenziale T1 si può decomporre in 2 parti:
Tseq =T1 Tpar =(1-)T1
T1 = T1 + (1-) T1
una parte relativa alle operazioni che POSSONO essere eseguite in parallelo
OSSERVAZIONE:
8
Efficienza 30
T1 = T1 + (1-) T1
Tp = T1 + (1-) T1p
Se
allora Tp il tempo impiegato dall’algoritmo parallelo con
p processori si può scrivere come:
Osservazione:
ovvero a partire da T1 possiamo ricavare Tp
dividendo le operazioni relative alla parte parallelaper il numero p di processori
Efficienza 31
Calcoliamo lo speedup:
Contributo relativo
all’esecuzione delle operazioni
sequenziali
Contributo relativo
all’esecuzione delle operazioni
in parallelo
p
)(11
p
)T-(1T
T
T
TS
11
1
p
1p
Lo speedup si può riscrivere come:
Efficienza 32
Legge di Ware (Amdahl)
p
)(11
p
)T-(1T
T
T
TS
11
1
p
1p
Tale legge esprime lo speedup in funzione delle frazioni sequenziali e parallelizzabili del tempo T1
ed il numero p di processori
Efficienza 33
Esempio:Somma di n =4 su p=2, T1= (n -1)tcalc =3tcalc
2 addizioni eseguite concorrentemente da 2 processori al passo 11
2
tcalc
P0 P1
Tpar
1 addizione eseguita in sequenziale da 1 processore al passo 2
Tseq T1 = +
Tseq = T1 = 1/3 T1= 1 tcalc
Tpar = (1-) T1= 2/3 T1= 2 tcalc
= 1/3 parte (di T1) sequenziale
(1-) = 2/3 parte (di T1) parallela
9
Efficienza 34
Esempio:Somma di n =4 su p=2,
2 addizioni eseguite parallelamente da 2 processori al passo 11
2
tcalc
P0 P1
Tpar
1 addizione eseguita in sequenziale da 1 processore al passo 2
Tseq T1 = +
Tseq = T1 = 1/3 T1= 1 tcalc
Tpar = (1-) T1= 2/3 T1= 2 tcalc
T1= (n -1)tcalc =3tcalc
T2= 1/3 T1 + 2/3 T1 = 2 tcalc2
Efficienza 35
Esempio:Somma di n =4 su p=2, T1= (n -1)tcalc =3tcalc
2 addizioni eseguite concorrentemente da 2 processori al passo 11
2
tcalc
P0 P1
Tpar
1 addizione eseguita in sequenziale da 1 processore al passo 2
Tseq T1 = +
Tseq = T1 = 1/3 T1= 1 tcalc
Tpar = (1-) T1= 2/3 T1= 2 tcalc
2
3
2
T3
2
T3
1
T
T
TS
1
1
1
2
12
Efficienza 36
Conseguenze della legge di Amdahl
p
)(1
Sp
1
Al crescere del numero p di processori…
1
Il valore asintotico di
Sp diventa costante!!
p
Efficienza 37
Esempio 1 (n fissato e p variabile)
p α1 αp Sp Ep
2 0,032 0,968 1,9 0,95
4 0,032 0,903 3,4 0,85
8 0,032 0,775 5,1 0,6
16 0,032 0,516 6,2 0,3
Fissiamo la dimensione n e aumentiamo il numero p di processori…
Speed up ed efficienzadegradano perché la
parte parallela
diminuisce!
Applichiamo la legge di Amdahl con n =32 e p =2, 4, 8, 16
10
Efficienza 38
Se la dimensione n del problema è fissata,
al crescere del numero p di processori,non solo non si riescono ad ottenere
speed up vicini a quello ideale
MA
Le prestazioni peggiorano!
(non conviene utilizzare un maggior numero di processori!!)
Prima conseguenza della legge di Amdahl
Efficienza 39
n α 1-α S2(n) E2(n)
8 0,14 0,86 1,75 0,875
16 0,06 0,93 1,8 0,9
32 0,03 0,96 1,9 0,96
64 0,01 0,98 1,96 0,99
La partesequenziale
tende a zero!
Applichiamo la legge di Amdahl con p =2 e n = 8, 16, 32, 64
Fissiamo il numero p di processori aumentiamo la dimensione n…
Esempio 2 (al contrario: n aumenta e p è fissato)
Efficienza 40
n α 1-α S2(n) E2(n)
8 0,14 0,86 1,75 0,875
16 0,06 0,93 1,8 0,9
32 0,03 0,96 1,9 0,96
64 0,01 0,98 1,96 0,99
La parte parallela è costante
Applichiamo la legge di Amdahl con p =2 e n = 8, 16, 32, 64
Esempio 2 (al contrario: n aumenta e p è fissato)
Fissiamo il numero p di processori aumentiamo la dimensione n…
Efficienza 41
Speed up ed efficienza sono
“costanti”!
Applichiamo la legge di Amdahl con p =2 e n = 8, 16, 32, 64
n α 1-α S2(n) E2(n)
8 0,14 0,86 1,75 0,875
16 0,06 0,93 1,8 0,9
32 0,03 0,96 1,9 0,96
64 0,01 0,98 1,96 0,99
Esempio 2 (al contrario: n aumenta e p è fissato)
Fissiamo il numero p di processori aumentiamo la dimensione n…
11
Efficienza 42
Seconda conseguenza della legge di Amdahl
p
)(1
Sp
1
Al crescere del numero n della dimensione del problema…
p
Il valore asintotico di
Sp è lo Speedup ideale!!
n
0 0
Efficienza 43
Fissando il numero p di processori e aumentando la dimensione del problema si possono ottenere
speedup prossimi a quello ideale
MA
Non è possibile aumentare in maniera indefinita la dimensione n
del problema: le risorse (hardware) sono limitate!
Seconda conseguenza della legge di Amdahl
Efficienza 44
Aumentando il numero p di processori e fissando la dimensione n del problema
si riesce ad utilizzare in maniera efficiente l’ambiente di calcolo parallelo,
se p ≤ p0
Sintesi
Secondo la legge di Amdahl-Ware…
Aumentando la dimensione n del problema e fissando il numero p di processori le
prestazioni dell’algoritmo parallelo non degradano se n ≤ n0
Efficienza 45
Cosa succede se
aumentiamo proporzionalmente
sia il numero p di processori
sia la dimensione n del problema
?
Domanda
12
Efficienza 46
Esempio: somma di n numeri in parallelo
n p α1 αp Sp(n) Ep(n)
8 2 0,14 0,86 1,75 0,875
16 4 0,06 0,8 3 0,75
32 8 0,03 0,77 5,1 0,64
64 16 0,01 0,76 9 0,56
La frazione di operazioni eseguite
in sequenziale
tende a zero!
Applichiamo la legge di Amdahl con p= 2, 4, 8, 16
è costante4p
n
Consideriamo quindi n= 8 , 16, 32, 64
Efficienza 47
Esempio: somma di n numeri in parallelo
La frazione di operazioni eseguite
in parallelo è “quasi costante”!
Applichiamo la legge di Amdhal con p= 2, 4, 8, 16
è costante4p
n
Consideriamo quindi n= 8 , 16, 32, 64
n p α1 αp Sp(n) Ep(n)
8 2 0,14 0,86 1,75 0,875
16 4 0,06 0,8 3 0,75
32 8 0,03 0,77 5,1 0,64
64 16 0,01 0,76 9 0,56
Efficienza 48
Esempio: somma di n numeri in parallelo
Lo speed up
aumenta!
Applichiamo la legge di Amdhal con p= 2, 4, 8, 16
è costante4p
n
Consideriamo quindi n= 8 , 16, 32, 64
n p α1 αp Sp(n) Ep(n)
8 2 0,14 0,86 1,75 0,875
16 4 0,06 0,8 3 0,75
32 8 0,03 0,77 5,1 0,64
64 16 0,01 0,76 9 0,56
Efficienza 49
Esempio: somma di n numeri in parallelo
L’efficienza è “quasi costante”!
Applichiamo la legge di Amdhal con p= 2, 4, 8, 16
è costante4p
n
Consideriamo quindi n= 8 , 16, 32, 64
n p α1 αp Sp(n) Ep(n)
8 2 0,14 0,86 1,75 0,875
16 4 0,06 0,8 3 0,75
32 8 0,03 0,77 5,1 0,64
64 16 0,01 0,76 9 0,56
13
Efficienza 50
Aumentando sia n che p,
le prestazioni
dell’algoritmo parallelo non degradano:
l’efficienza rimane costante
Ma
come misurare le prestazioni
?
Scalabilità dell’algoritmo
Efficienza 51
•Raddoppiamo p ed n:
con p=2 posso calcolare la somma di 2n numeri nel tempo T1(n)
(2n)T(n)T 21
(4n)T(n)T 41
Sia T1(n) il tempo di esecuzione su un processoreper la somma di n numeri…
Esempio: somma di n numeri in parallelo
• Quadruplichiamo p ed n :
con p=4 posso calcolare la somma di 4n numeri nel tempo T1(n)
Efficienza 52
1)pn(T
)n(T
p
1
..se si assume
pT1(n) = T1(pn)
)pn(T...)n(T(2n)T(n)T p421 4
idealep
p
1 Sp)pn(T
)pn(Tp
)pn(T
)n(Tp
p
1
Pertanto...
Esempio: somma di n numeri in parallelo
Sia T1(n) il tempo di esecuzione su un processore per la somma di n numeri, in generale vale…
Si raggiunge lo speedup ideale!!Efficienza 53
(*) la legge di proporzionalità dipende dal problema nel caso della somma essa è lineare, cioè
pT1(n) = T1(pn)
(np)T(n)pT
(pn)T(pn)T
(n)SSpp
p11
SPEEDUP SCALATO
Speedup ScalatoUn algoritmo si dice scalabile se
aumentando il numero di processori
riusciamo ad aumentare proporzionalmente(*) la dimensione del problema mantenendo
il tempo parallelo costante, cioè vale:
14
Efficienza 54
(*) la legge di proporzionalità dipende dal problema nel caso della somma essa è lineare, cioè
pT1(n) = T1(pn)
Efficienza Scalata
(pn)T
(n)T
p
(n)SS(n)ES
p
1pp
EFFICIENZA SCALATA
Un algoritmo si dice scalabile se
aumentando il numero di processori
riusciamo ad aumentare proporzionalmente(*) la dimensione del problema mantenendo
l’efficienza scalata costante, cioè vale:
Efficienza 55
Lo speedup scalato
misura la scalabilità di un algoritmo parallelo
ovvero di quanto aumenterebbe
il tempo sequenziale T1(n)
dato il tempo parallelo Tp(pn),
Cioè…
Osservazione
Efficienza 56
….. Misuriamo quanto impiegherebbe
un solo processore ad effettuare in sequenziale
le operazioni eseguite
concorrentemente da p processori:
cioè quanto impiegherebbe un solo processore
a risolvere un problema p volte più grande
(fixed-time model)
Osservazione
Efficienza 57
una parte di operazioni che
sono eseguite in sequenziale
Il tempo di esecuzione Tp si può decomporre in 2 parti:
Tseq =’Tp Tpar =(1-’)Tp
Tp = +Tseq Tpar
e una parte di operazioni che
sono eseguite parallelamente -
15
Efficienza 58
una parte di operazioni che
sono eseguite in sequenziale
Il tempo di esecuzione Tp si può decomporre in 2 parti:
Tseq =’Tp Tpar =(1-’)Tp
e una parte di operazioni che
sono eseguite parallelamente -
Tp = ’Tp + (1-’) Tp
Efficienza 59
Tp = ’Tp + (1-’) Tp
T1 = ’Tp + p (1-’) Tp
da
calcoliamo T1 = il tempo di esecuzione dell’algoritmo
sequenziale su 1 processore
tenendo presente che le operazioni relative alla parte
parallela sono ora eseguite sequenzialmente
Efficienza 60
Esempio: somma di n =4 su p=2, T2=2tcalc
P1P0
1
1
2
1'
2
Al I passo
1 add (1 per p=2) è eseguita concorrentemente
Parte di T2 parallela
Al II passo
1 add è eseguita in sequenziale
2
1 )1( ' Parte di T2 sequenziale
T2 = ’ T2 + (1 - ’) T2
Efficienza 61
Esempio: somma di n =4 su p=2, T2=2tcalc
P1P0
1
1
2
1'
2
Al I passo
1 add (1 per p=2) è eseguita concorrentemente
Parte di T2 parallela
Al II passo
1 add è eseguita in sequenziale
2
1 )1( ' Parte di T2 sequenziale
T1 = ’ T2 + 2 (1 - ’) T2 = 3 tcalc
16
Efficienza 62
pp TpTT )'1('1
'
p)(1p)'p(1'T
)T'p(1'TSS
p
ppp
LEGGE DI GUSTAFSON
(Reinterpretazione della legge di Ware-Amdahl)
Modello di SPEED UP SCALATO
In generale
Efficienza 63
Nel passare da p0 a p1 processori con p1 > p0,,
come deve aumentare (scalare)
la dimensione del problema n0
affinché l’efficienza resti costante ?
Cioè quanto deve valere n1 ?
Problema
Efficienza 64
1)(nT
)p,(nO
1
p
)(nS)(nE
01
00h0
0p
0p0
)(nE1
)(nT
)p,(nO1
p
)(nS1p
11
11h1
1p
1
1
Come calcolare n1?
=
)(nT
)p,(nO
)(nT
)p,(nO
11
11h
01
00h
)p,(nO
)p,(nO)(nT)(nT
00h
11h0111
ISOEFFICIENZAEfficienza 65
Calcoliamo l’isoefficienza nella somma
Oh(p) = log p
T1(n) = n
)p,p,(nInlogpp
logppnn 1000
00
1101
Nel passare da p0 a p1 con p1 > p0,
la dimensione del problema deve aumentare,
rispetto alla
dimensione iniziale n0 , del fattore
k = (p1 log p1)/ p0 log p0
17
Efficienza 66
Speed up ed efficienza scalata
p
SSES p
p
Efficienza scalata
)(nT
)(nT)n,p,(nISS
1p
01100p
Speed up scalato
Efficienza 67
Osservazione
Se si esegue l’algoritmo parallelo su un
calcolatore MIMD a memoria distribuita,
il tempo di esecuzione dipende solo dal numero di operazioni eseguite in differenti
passi temporali?
Efficienza 68
Esempio: calcolo della somma di n=16 numeri
ALGORITMO PARALLELOp=2
L’algoritmo richiede lacomunicazione di 1 dato
tra 2 processori
tcom= tempo per comunicare un dato tra due processori
T2=8 tcalc +tcomcomunicazione
P0 P1tcom
1
tcom
Efficienza 69
Esempio: calcolo della somma di n=16 numeri
ALGORITMO PARALLELOp=4
tcom
T4=5 tcalc +2tcom
P3P0 P2P1
1
2
18
Efficienza 70
Esempio: calcolo della somma di n=16 numeri
ALGORITMO PARALLELOp=8
T8=4 tcalc +3tcom
tcalc P3P0 P2P1
P5 P6 P7P4
2
3
1
Efficienza 71
In sintesi …
p Tp
1 15tcalc
2 8tcalc + 1 tcom
4 5tcalc + 2 tcom
8 4tcalc + 3 tcom
In generale quanto vale Tp
considerando le comunicazioni?
?2k ? tcalc + ? tcom
Efficienza 72
In generale: calcolo di Tp considerando le comunicazioni
ALGORITMO PARALLELO della somma di n numerisu p=2k processori
n = 16
tcalc= tempo di esecuzione di 1 addizione
p=1 T1=15 tcalc
p=2 T2=8 tcalc= (7+1) tcalc + 1 tcom
p=4 T4=5 tcalc= (3+2) tcalc + 2 tcom
p=8 T8=4 tcalc= (1+3) tcalc + 3 tcom
………………
p=2k
pnTp= ( -1 +log2 p) tcalc + (log2 p) tcom
tcom= tempo di 1 comunicazioneEfficienza 73
Overhead di comunicazione unitario
tcom = tempo di 1 comunicazione
tcalc = tempo di esecuzione di 1 operazione fl.p.
calc
com
t
toc
definiamo overhead di comunicazione unitario, il rapporto:
19
Efficienza 74
Esempio: calcolo della somma di n=16 numeri
supponiamo 2t
toc
calc
com T1=15tcalc
p Tp SP Ep
2 8tcalc 1.88 0.94
4 5tcalc 3.00 0.75
8 4tcalc 3.75 0.47
p Tp SP Ep
2 (8+2∙1)tcalc 1.50 0.75
4 (5+2∙2)tcalc 1.67 0.42
8 (4+2∙3)tcalc 1.88 0.24
Trascurando la comunicazione Considerando la comunicazione
Considerando o meno il tempo di comunicazione le prestazioni dell’algoritmo possono cambiare notevolmente!
comunicazioni
p=2k
pn
Tp= ( -1 +log2 p) tcalc p=2k
pn
Tp= ( -1 +log2 p) tcalc + (log2 p) tcom
Efficienza 75
Overhead di comunicazione
Tpcom = tempo di comunicazione dell’algoritmo
eseguito su p processori
Tpcalc = tempo di calcolo dell’algoritmo
eseguito su p processori
Fornisce una misura del “peso” della comunicazione sul tempo di esecuzione dell’ algoritmo
calcp
comp
p T
TOC
definiamo Overhead di Comunicazione totale, il rapporto:
Riferimenti Bibliografici
76
A. Murli, Lezioni di Calcolo Parallelo, cap 3
A.Y. Grama, A. Gupta, V. Kumar Isoefficiency: Measuring the Scalability of Parallel Algorithms and Architectures IEEE Parallel & Distributed Technology, 1993
A.Y. Grama, A. Gupta, G.Karypis, V. Kumar Introduction to Parallel Computing Second edition http://www-users.cs.umn.edu/~karypis/parbook/
J. L. Gustafson. Reevaluating Amdahl’s Law. Communications of the ACM, May 1988.
Efficienza 77
Fine Lezione