Académique Documents
Professionnel Documents
Culture Documents
I multi processori
Prof. Alberto Borghese
Dipartimento di Scienze dellInformazione
borghese@dsi.unimi.it
Universit degli Studi di Milano
Patterson, sezione 1.5, 1.6, 2.17, 7.1, 7.2, 7.3, 7.4, 7.5, 7.6, 7.9, 7.10
A.A. 2010-2011
1/29
http:\\homes.dsi.unimi.it\borghese
Sommario
Le architetture multi-processore
I cluster
Il modello Roofline
A.A. 2010-2011
2/29
http:\\homes.dsi.unimi.it\borghese
6/7/2011
La barriera dellenergia
3/29
http:\\homes.dsi.unimi.it\borghese
I multi-processori
4/29
http:\\homes.dsi.unimi.it\borghese
6/7/2011
Esecuzione parallela
Esecuzione parallela richiede un Overhead:
- Scheduling.
- Coordinamento.
Scheduling:
Analisi del carico di lavoro globale (scheduler).
Partizionamento del carico sui diversi processori (scheduler).
Coordinamento nella raccolta dei risultati (e.g. reorder station).
Lo scheduling pu essere pi (Pentium 4) o meno (CUDA) performante.
performante Sempre
pi importante il lavoro del programmatore / compilatore.
Infatti. Non si pu perdere troppo tempo nello scheduling e/o nella
compilazione.
A.A. 2010-2011
5/29
http:\\homes.dsi.unimi.it\borghese
Un esempio
Come stimare il tempo di lavoro?
Come correggere la predizione?
Cf. Amdahls law
A.A. 2010-2011
6/29
http:\\homes.dsi.unimi.it\borghese
6/7/2011
A.A. 2010-2011
7/29
http:\\homes.dsi.unimi.it\borghese
A.A. 2010-2011
8/29
http:\\homes.dsi.unimi.it\borghese
6/7/2011
Serial
(pipeline)
Parallel
(pipeline)
A.A. 2010-2011
9/29
http:\\homes.dsi.unimi.it\borghese
A.A. 2010-2011
10/29
http:\\homes.dsi.unimi.it\borghese
6/7/2011
Parallelizzazione dellesecuzione - 1
P ti i
Partizionamento
t dei
d i dati
d ti in
i ingresso
i
Stessa memoria fisica
Ottengo P = 100 somme parziali. Per ottenere la somma finale devo sommare tra
loro le somme parziali (riduzione). Come?
A.A. 2010-2011
11/29
http:\\homes.dsi.unimi.it\borghese
Sommo i numeri a due a due in modo ricorsivo e gerarchico (divide and conquer)
12/29
http:\\homes.dsi.unimi.it\borghese
6/7/2011
Osservazioni
half = 100;
A.A. 2010-2011
13/29
http:\\homes.dsi.unimi.it\borghese
Sommario
Le architetture multi-processore
I cluster
Il modello Roofline
A.A. 2010-2011
14/29
http:\\homes.dsi.unimi.it\borghese
6/7/2011
Architettura stand-alone - PC
I cluster
A.A. 2010-2011
http:\\homes.dsi.unimi.it\borghese
Parallelizzazione dellesecuzione - 1
P ti i
Partizionamento
t dei
d i dati
d ti in
i ingresso
i
inviandoli
i i d li alle
ll diverse
di
macchine.
hi
Ciascun gruppo di 1000 numeri risiede fisicamente su una macchina diversa.
Ottengo P = 100 somme parziali. Per ottenere la somma finale devo sommare tra
loro le somme parziali (riduzione). Come?
A.A. 2010-2011
16/29
http:\\homes.dsi.unimi.it\borghese
6/7/2011
Sommo i numeri a due a due in modo ricorsivo e gerarchico (divide and conquer)
ma le somme parziali sono qui su macchine fisicamente diverse
A.A. 2010-2011
17/29
http:\\homes.dsi.unimi.it\borghese
Sommario
Le architetture multi-processore
I cluster
Il modello Roofline
A.A. 2010-2011
18/29
http:\\homes.dsi.unimi.it\borghese
6/7/2011
A.A. 2010-2011
19/29
http:\\homes.dsi.unimi.it\borghese
20/29
http:\\homes.dsi.unimi.it\borghese
Parallel SPEC
Weak scaling: la dimensione
del programma e dei dati fissa
Strong scaling: la dimensione
del programma e dei dati cresce
proporzionalmente al numero
dei processori.
A.A. 2010-2011
10
6/7/2011
Arithmetic intensity
Velocit di calcolo FLOPS (floating point per second): velocit del singolo core: Vcore.
In unachitettura multi-core con N core la velocit di calcolo Vcalc = P * Vcore
Velocit di trasferimento dalla gerarchia di memoria. Per calcolarla dobbiamo capire quante
operazioni devono essere fatte per ciascun byte caricato in cache, Nop / Byte (Arithmetic
Intensity)
Se effettuiamo Nop operazioni su ogni byte letto dalla memoria, avremo una velocit di calcolo
massima
i
parii a: Vmax = Vmem * Nbyte = [Byte
[
//s].
]
21/29
A.A. 2010-2011
http:\\homes.dsi.unimi.it\borghese
Il modello roofline
2 elements:
- Computation
- Memory transfer
Nessun benchmark pu essere
contenuto interamente in cache.
A.A. 2010-2011
22/29
AMD Opteron X2
http:\\homes.dsi.unimi.it\borghese
11
6/7/2011
AMD Opteron X2
A.A. 2010-2011
http:\\homes.dsi.unimi.it\borghese
DallOpteron X2 allOpteron X4
Opteron X4 vs Opteron X2:
Stesso sistema di memoria
Numero doppio di processori (core)
Numero quadruplo di operazionio in
virgola mobile al secondo
Doppia capacit aritmetica della pipeline
Doppia capacit di fetch.
L velocit
La
l it di elaborazione
l b
i
aumenta,
t ma solo
l per
intensit aritmetiche superiori ad 1.
La velcocit di calcolo massima di 128GFLOPS si
raggiunge solo per unintensit aritmetica pari a 5.
A.A. 2010-2011
24/29
http:\\homes.dsi.unimi.it\borghese
12
6/7/2011
Mix di operazioni:
- Floating point
- Moltiplicazioni e addizioni
Parallelizzazione
dellesecuzione
- Srotolamento dei cicli
25/29
A.A. 2010-2011
http:\\homes.dsi.unimi.it\borghese
Mix di operazioni:
- Floating point
- Moltiplicazioni e addizioni
Parallelizzazione
dellesecuzione
- Srotolamento dei cicli
A.A. 2010-2011
26/29
http:\\homes.dsi.unimi.it\borghese
13
6/7/2011
Software pre-fetching:
-Precaricamento dei dati in cache
Affinit della memoria:
- Massimizzare gli hit
A.A. 2010-2011
27/29
http:\\homes.dsi.unimi.it\borghese
Quali ottimizzazioni?
A.A. 2010-2011
28/29
http:\\homes.dsi.unimi.it\borghese
14
6/7/2011
Sommario
Le architetture multi-processore
I cluster
Il modello Roofline
A.A. 2010-2011
29/29
http:\\homes.dsi.unimi.it\borghese
15