Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
a.a. 2019-2020
2
Previously on… CPD
Classificazione di Flynn
Temporale SIDS/MISD
Spaziale SIMD
asincrono MIMD
Strategie di Parallelizzazione per la somma in ambiente DM
(I, II, III)
Strategie di Parallelizzazione per la somma in ambiente SM
(I, II)
Introduzione alla libreria OpenMP per la programmazione in
ambiente multicore (che riprenderemo domani) con il
laboratorio
3
Introduzione all’efficienza
4
Efficienza di un algoritmo sequenziale
5
Esempio: calcolo della somma di n=16 numeri
ALGORITMO SEQUENZIALE
1 studente
numero di addizioni = 15
Passi passi temporali = 15
temporali
1
2
2
33
4
5
5
6
6
7
7
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
complessità di
tempo
T(n)=n-1 addizioni
6
6
In un algoritmo sequenziale
7
In un software sequenziale
8
Domanda
Cosa si intende
per efficienza di un algoritmo
in ambiente parallelo?
9 9
Domanda
10
Esempio: calcolo della somma di n=16 numeri
ALGORITMO PARALLELO
numero di addizioni = 15
2 studenti
MA
Passi
temporali
passi temporali = 8
1
2
3
4
5
6
7
8
Passi temporali 1-7: 14 addizioni
(7 per ciascuno studente)
ALGORITMO PARALLELO
numero di addizioni = 15
4 studenti
MA
Passi
temporali
passi temporali = 5
1
2
3
4
Passi temporali 1-3: 12 addizioni
5
12
Nell’algoritmo parallelo della somma
13
Infatti …
Un calcolatore parallelo è in grado di eseguire più operazioni
concorrentemente
(allo stesso passo temporale)
14
… e allora
15
… altre osservazioni:
Se p indica il numero di processori, p=1, 2, 3,…
16
Se p indica il numero di processori, p=1, 2, 3,…
T(1)
4
T(4)
17
In generale
T(1)
p
T(p)
ovvero
ci aspettiamo di ridurre di
p volte il tempo di
esecuzione
18
IDEA
su 1 processore…
19
Esempio: calcolo della somma di n=16 numeri
ALGORITMO SEQUENZIALE
p=1
tcalc
1
2
3
4 numero di addizioni = 15
5
6
7
8
9
Tempo di
T(1)=15 tcalc
10
11
12 esecuzione
13
14
15
20
Esempio: calcolo della somma di n=16 numeri
ALGORITMO PARALLELO
II-III strategia p=2
numero di addizioni = 15
P0 P1
tcalc
1
2
T(2)=8 tcalc
3
4
5
6
7
8
tcalc= tempo di esecuzione di 1 addizione
21
Esempio: calcolo della somma di n=16 numeri
ALGORITMO PARALLELO
II-III strategia p=4
numero di addizioni = 15
P0 P1 P2 P3
tcalc
1
2
3
T(4)=5 tcalc
4
5
22
Esempio: calcolo della somma di n=16 numeri
ALGORITMO PARALLELO
II-III strategia p=8
numero di addizioni = 15
tt calc
calc P0 P1 P2 P3 P4 P5 P6 P7
1
2
T(8)=4 tcalc
3
4
23
In sintesi… II-III strategia
p Tp
1 15tcalc
2 8tcalc
4 5tcalc
8 4tcalc
p ? tcalc
?
In generale quanto vale T(p)?
24
In generale: calcolo di T(p)
ALGORITMO PARALLELO della somma di n numeri
II-III strategia - posto p processori
25
Domanda…
p Tp
1 15tcalc
2 8tcalc
4 5tcalc
8 4tcalc
26
Esempio: calcolo della somma di n=16 numeri
T(1)
p T(p)
T(p)
1 15tcalc 1.00
Maggiore
2 8tcalc 1.88 riduzione del
4 5tcalc 3.00
tempo ovvero
maggiore
8 4tcalc 3.75 aumento della
velocità
27
Speed-up
Si definisce il rapporto T(1) su T(p)
T(1)
S(p)
T(p)
Lo speed up misura la riduzione del
tempo di esecuzione rispetto
all’algoritmo su 1 processore
S(p) p
SPEEDUP IDEALE
Sideale (p) p
28
Osservazione
T (1)
S (p)
ideale
p
T ( p)
Oh = pT(p) – T(1)
T(p) = (Oh + T(1)) /p
OVERHEAD totale
29
L’overhead nell’algoritmo parallelo della somma
II-III str
T(1) = (n-1) tcalc
T(p) = (n/p - 1 + log2 p) tcalc
31
32
Esempio: calcolo della somma di n=16 numeri
p Speed-up Speed-up
ottenuto ideale
2 1.88 2
4 3.00 4
8 3.75 8
MA
Lo speed-up su 2 processori è “il più vicino”
allo speed-up ideale…
33
Cioè
34
In altre parole
…e allora ?
35
Esempio: calcolo della somma di n=16 numeri
… se si rapporta lo speed-up al numero di processori…
36
In altre parole
OVVERO
37
Come misurare se e quanto
è stata sfruttato il calcolatore parallelo ?
38
Efficienza
Si definisce il rapporto Ep su p
S(p)
E(p)
p
EFFICIENZA IDEALE
Sideale ( p)
Eideale ( p) 1
p
39
Infatti, per la somma con p=8
al I passo:
tt calc P0 P1 P2 P3 P4 P5 P6 P7
calc
lavorano p=8 processori
1 al II passo:
40
Osservazione
Se si esegue l’algoritmo su un
calcolatore MIMD a memoria distribuita,
il tempo di esecuzione NON dipende solo
dal numero di operazioni eseguite
in differenti passi temporali
41
Esempio: calcolo della somma di n=16 numeri
ALGORITMO SEQUENZIALE
p=1
tcalc
1
2
3
4 numero di addizioni = 15
5
6
7
8
9
Tempo di
T(1)=15 tcalc
10
11
12 esecuzione
13
14
15
42
Esempio: calcolo della somma di n=16 numeri
ALGORITMO PARALLELO
II-III strategia p=2
numero di addizioni = 15
P0 P1
tcalc
1
2
8 tcalc
3
4
5
6
7
1 tcom
8
tcalc= tempo di esecuzione di 1 addizione
43
Esempio: calcolo della somma di n=16 numeri
ALGORITMO PARALLELO
II-III strategia p=4
numero di addizioni = 15
P0 P1 P2 P3
tcalc
1
2
3
5 tcalc
4
5
2 tcom
44
Esempio: calcolo della somma di n=16 numeri
ALGORITMO PARALLELO
II-III strategia p=8
numero di addizioni = 15
tt calc
calc P0 P1 P2 P3 P4 P5 P6 P7
1
2
4 tcalc
3 tcom
3
4
45
In sintesi …
p T(p)
1 15tcalc
2 8tcalc + 1 tcom
4 5tcalc + 2 tcom
8 4tcalc + 3 tcom
2k ? tcalc + ? tcom ?
In generale quanto vale T(p)
considerando le comunicazioni?
46
In generale: calcolo di T(p) considerando le comunicazioni
ALGORITMO PARALLELO
della somma di n numeri
su p=2k processori
definiamo
Overhead di Comunicazione Unitario
il rapporto:
tcom
oc
tcalc
48
Esempio: calcolo della somma di n=16 numeri
supponiamo
tcom
T(1)=15tcalc oc 2
tcalc
Trascurando la comunicazione Considerando la comunicazione
p Tp SP Ep comunicazioni p Tp SP Ep
n n
p=2k T(p)= ( -1 +log2 p) tcalc p=2k T(p)= ( -1 +log2 p) tcalc + (log2 p) tcom
p p
definiamo
Tcom ( p )
OC(p)
Tcalc ( p )
Fornisce una misura del “peso” della comunicazione sul
tempo di esecuzione dell’ algoritmo
50
Esempio: calcolo della somma di n=16 numeri
tcom
Posto ad esempio: oc 2
tcalc