Architetture parallele Macchina di von Neumann Cenni storici Cenni

Architetture parallele
Macchina di von Neumann
Modello di calcolo: macchina di von Neumann.
Limite alle prestazione ottenibili:
• un’unica operazione in esecuzione
• una sola parte attiva
Ricerca di nuove architetture con piu` operazioni in
esecuzione allo stesso istante.
Memory
Control
unit
Input
Arithmetic
logic unit
Output
Accumulator
(Architettura degli Elaboratori)
Architetture parallele
1 / 71
(Architettura degli Elaboratori)
Architetture parallele
Cenni storici
2 / 71
Cenni storici
Molte proposte per architetture parallele:
Macchine parallele a larga diffusione: anni 90.
• Reti neuronali,
• Pipeline, superscalari
• Date flow machine,
Approcci conservativi, mantengo il codice.
• processore multi-core, sistemi multiprocessore,
cluster di calcolatori.
Ultime evoluzioni, conseguenze della:
legge di Moore,
vincoli sui consumi energetici.
Per sfruttare a piene il parallelismo devo usare
algoritmi concorrenti distribuiti.
• Calcolatori vettoriali,
• Connection machine,
• Illiac IV.
Scarso successo commerciale.
I calcolatori vettoriali usate per supercomputer per il
calcolo scientifico.
Approcci rivoluzionari, difficili da usare,
richiedono nuovi stili di programmazione.
(Architettura degli Elaboratori)
Architetture parallele
3 / 71
(Architettura degli Elaboratori)
Architetture parallele
Illustreremo
Motivazioni per il
parallelismo
• problematiche e aspetti generali del
parallelismo;
• classificazione dei calcolatori paralleli;
• esempi di calcolatori paralleli, idee architetturali
attualmente in uso.
(Architettura degli Elaboratori)
Architetture parallele
4 / 71
5 / 71
Migliorare le prestazioni:
• problemi che richiedo molta potenza
computazionale: algoritmi di simulazione;
• il software tende a sfruttare tutte le risorse
disponibili.
Aumento delle prestazioni mediante:
• nuove tecnologie (porte logiche piu
` veloci).
• nuove architetture (computazione piu
` efficiente,
maggior parallelismo)
(Architettura degli Elaboratori)
Motivazioni per il
parallelismo
Architetture parallele
6 / 71
Parallelismo su un singolo
chip
Pipeline: divisione della (micro-)istruzione in stadi.
Altri vantaggi:
• tolleranza ai guasti: piu
` unita di calcolo, un
guasto non necessariamente blocca il
calcolatore,
• architettura scalabile: posso aumentare le
prestazioni aggiungendo nuove unita` di calcolo.
S1
S2
S3
S4
S5
Instruction
fetch
unit
Instruction
decode
unit
Operand
fetch
unit
Instruction
execution
unit
Write
back
unit
(a)
S1:
1
S2:
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
1
2
3
4
5
6
1
2
3
4
5
8
9
S3:
S4:
S5:
1
(Architettura degli Elaboratori)
Architetture parallele
7 / 71
(Architettura degli Elaboratori)
2
3
4
5
6
7
Time
(b)
Architetture
parallele
…
8 / 71
Processori superscalari
Parallelismo a livello di
istruzione
Integer pipeline
Execute
Fetch
Decode
Cache
N1
N3
Register
X1
X2
Piu` istruzioni, di uno stesso processo, eseguite
contemporaneamente.
• Vantaggi: si utilizza codice sequenziale, facile
da utilizzare, non e` necessario riscrivere il
codice.
• Svantaggi: difficile ottenere un elevato grado di
parallelismo.
N2
Group
Write
X3
Floating-point/graphics pipeline
Piu` istruzioni iniziate contemporaneamente
Prestazioni: aumento di un fattore circa dieci
(Architettura degli Elaboratori)
Architetture parallele
9 / 71
(Architettura degli Elaboratori)
Architetture parallele
Parallelismo su di un
singolo chip
VLIW – Very Long
Instruction Words
Altre tecniche il parallelismo:
• Processori VLIW Very Long Instruction Words
• On-Chip Multi-threading
• Single-Chip Multiprocessor
•
•
Multiprocessori omogenei
Multiprocessori eterogeneo
(Architettura degli Elaboratori)
Architetture parallele
10 / 71
11 / 71
Nuovi linguaggi macchina adatti alla computazione
parallela.
Sfruttano al meglio le tecnologie esistenti.
I nuovi linguaggi macchina usano:
VLIW – Very Long Instruction Words ossia istruzioni
molto lunghe, ciascuna composta da una sequenza
di istruzioni base.
Istruzione base da eseguire in parallelo
contemporaneamente.
Senza controllare che siano indipendenti tra loro.
Sposto
il lavoro dal processore
al compilatore.
(Architettura degli Elaboratori)
Architetture parallele
12 / 71
TriMedia
Itanium IA-64
Intel, candidato a sostituire l’IA-32 (Pentium, Core).
Processore sviluppato dalla Philips, per dispositivi
embedded di audio-video (DVD player - recorder,
camcorder, . . . .
Una singola istruzione e` composta da 5-8
sotto-istruzioni: operazioni aritmetiche, load-store,
multimediali (vettoriali).
INSTRUCTION 1
INSTRUCTION 2
INSTRUCTION 3
TEMPLATE
INSTRUCTION 1
INSTRUCTION 2
INSTRUCTION 3
TEMPLATE
INSTRUCTION 1
INSTRUCTION 2
INSTRUCTION 3
TEMPLATE
R1
R2
Instructions
can be
chained
together
R3
PREDICATE
REGISTER
Piu` istruzioni possono essere collegate assieme ed
eseguiti contemporaneamente,
senza controllare l’indipendenza.
(Architettura degli Elaboratori)
Architetture parallele
13 / 71
(Architettura degli Elaboratori)
Itanium IA-64
Permette di sfruttare meglio le capacita` di calcolo dei
processori superscalari (con piu` pipeline).
Il processore esegue piu` thread (processi (con
memoria condivisa)) contemporaneamente.
di salto.
• Centinaia di registri, evito:
accessi in memoria,
dipendenza tra istruzioni.
• Caricamenti speculativi,
anticipo gli accessi in memoria.
a meno di page-fault.
Utile nel caso un programma rallenti per:
• dipendenze tra istruzioni,
• istruzioni che bloccano, per alcuni cicli di clock
l’esecuzione (accessi alla memoria principale,
cache III livello)
Poco successo commerciale,
il mercato ha preferito x86-64 (o AMD 64)
scelta conservativa.
Architetture parallele
14 / 71
Multi-threading
• Istruzioni condizionate, per evitare le istruzioni
(Architettura degli Elaboratori)
Architetture parallele
15 / 71
(Architettura degli Elaboratori)
Architetture parallele
16 / 71
Multi-threading
Multi-threading
Puo` essere utilizzato in processori con singola
pipeline.
Piu` utile in processore superscalari.
In determinati istanti il processore commuta da un
thread ad un altro.
Due tecniche possibili;
• m. grana fine: si commuta su ogni,
numero elevato di commutazione di contesti,
si anticipano i possibili blocchi.
• m. grana grossa: si cerca di eseguire piu
`
istruzioni per thread,
riduco le commutazioni.
(Architettura degli Elaboratori)
Architetture parallele
Processore con una singola pipeline:
Processore superscalare:
17 / 71
(Architettura degli Elaboratori)
Ripartizione risorse
Architetture parallele
18 / 71
Ripartizione risorse
Come le risorse del processore vengono ripartite tra
i vari thread.
Esempi:
• ogni thread disponi di un suo insieme di registri:
• risorse condivise: memoria cache
• risorse partizionate: le pipeline di un processore
super-scalare
In generale:
• condivisione ripartita: ogni thread un insieme
privato di risorse,
• condivisione totale,
• condivisione a soglia; un limite alle risorse
acquisibili da un thread.
Multi-threading usato su molti processori:
• Core i7: hyper-threading, 2 thread/core,
• UltraSparcT3: 16 core, 8 thread/core
(Architettura degli Elaboratori)
Architetture parallele
19 / 71
(Architettura degli Elaboratori)
Architetture parallele
Multiprocessori omogenei
su un singolo chip
20 / 71
Intel Core i7
Evoluzione del multi-threading, ogni thread un core.
Totale separazione delle risorse tra i thread.
Solo a memoria cache resta comune.
Maggior numero di core:
- UltraSparc
- Celle (Sony, Toshiba, IBM)
La tecnologia attuale permette di inserire piu`
processori su di un chip.
(Architettura degli Elaboratori)
Architetture parallele
21 / 71
Co-processori
Parallelismo ottenuto delegando alcuni compiti a
processori ausiliari.
• DMA (Direct Memory Access): controllore DMA
complesso, co-processore, si fa carico della
gestione I/O.
• Scheda video: generazione di immagini.
• Co-processori multimediali: la gestione dei dati
audio video gravosa: codifica - decodifica
(MPEG, MP3), elaborazione del segnale.
• Scheda di rete: controllo degli errori,
instradamento dei messaggi.
• Cripto-processori.
(Architettura degli Elaboratori)
Architetture parallele
23 / 71
(Architettura degli Elaboratori)
Architetture parallele
22 / 71
Multipr. eterogenei su
singolo chip
In un chip:
• core principale di controllo
• co-processori specializzati su particolari
applicazioni
• bus di interconnessione, diversi standard
alternativi:
CoreConnect IBM, AMBA (Advance
Microcontroller Bus Architecture) CPU ARM,
VCI (Virtual Component Interconncect)
Chip progettato combinando i progetti delle singole
componenti (core).
(Architettura degli Elaboratori)
24 / 71
Dispositivi
embedded:Architetture
SoCparallele
(System on Chip),
Parallelismo su piu` chip
Multiprocessori
Sistemi a memoria condivisa.
Piu` processori su piu` circuiti integrati.
• Maggiori aumenti di prestazioni.
• Necessita
` di nuovo codice (o di un adatto SO),
nuove problematiche.
• Considereremo due principali approcci:
multiprocessori e multicomputer.
P
P
P
P
CPU
P
P
Shared
memory
P
P
P
P
P
P
P
Architetture parallele
25 / 71
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
P
(a)
(Architettura degli Elaboratori)
P
P
P
(b)
(Architettura degli Elaboratori)
Architetture parallele
Multiprocessori
26 / 71
Multicomputer
Sistemi a memoria distribuita:
• Le CPU dividono lo stesso spazio di memoria.
M
M
M
M
Private memory
• Comunicazione tra CPU attraverso l’accesso
P
P
P
P
CPU
alla memoria condivisa LOAD, STORE.
M
P
• Non e
` necessario ripartire i dati tra le CPU
M
P
• Accesso alla memoria limita le unita
` di
M
P
computazione (il grado di parallelismo).
• Esempi: PC con multi-processore, server.
M
P
Messagepassing
interconnection
network
P
P
M
M
P
P
M
M
P
P
M
P
P
M
P
P
M
P
P
M
P
P
Architetture parallele
27 / 71
• Ogni CPU ha un proprio spazio di memoria.
Machine 1
Machine 2
Application
CPU
P
P
P
P
P
P
P
P
(b)
(Architettura degli Elaboratori)
Multicomputer
P
Messagepassing
interconnection
network
(a)
(Architettura degli Elaboratori)
P
Architetture parallele
28 / 71
Simulazione memoria
condivisa
Machine 1
Machine 2
Machine 1
Machine 2
Application
Application
Application
Application
Application
Language
run-time
system
Language
run-time
system
Language
run-time
system
Language
run-time
system
Language
run-time
system
Language
run-time
system
Operating
system
Operating
system
Operating
system
Operating
system
Operating
system
Operating
system
Hardware
Hardware
Hardware
Hardware
Hardware
Hardware
• Comunicazione attraverso scambio di
messaggi: SEND, RECEIVE.
• Piu
` semplice integrare numerose CPU, numero
unita` limitato dalla capacita` della rete di
interconnessione.
• Piu
` difficili da programmare.
(Architettura degli Elaboratori)
Architetture parallele
29 / 71
Shared memory
Shared memory
Shared memory
(a)
(b)
(c)
(Architettura degli Elaboratori)
Simulazione memoria
condivisa
1
2
3
` complessita` delle computazioni
Granularita:
eseguite in parallelo (e dei circuiti che le eseguono)
• Fine: semplici istruzioni, Instruction Level
Parallelism (ILP). Es. processori con pipeline.
• Grossa (coarse): procedure, Process Level
Parallelism (PLP). Es. processori
multi-threading, sistemi multiprocessori.
nel memoria della CPU,
in memoria disco,
nella memoria locale di un altra CPU.
DSM (Distributed Shared Memory).
Memoria condivisa tramite librerie.
•
•
30 / 71
Catalogazione del
parallelismo
Memoria condivisa hardware.
Memoria condivisa tramite memoria virtuale,
paginazione.
Una pagina puo` trovarsi:
•
•
•
Architetture parallele
Linda: programmi con tuple condivise.
Orca: programmi con oggetti condivisi.
(Architettura degli Elaboratori)
Architetture parallele
31 / 71
(Architettura degli Elaboratori)
Architetture parallele
32 / 71
Scalabilita`
Livello di accoppiamento
• Forte: unita
` fortemente connesse, notevole
Una stessa idea architetturale puo` essere
implementata con un numero variabile di unita` di
calcolo.
Un’architettura e` scalabile se funziona correttamente
con molte unita di calcolo.
scambio di dati. Es. processori superscalari,
multiprocessori.
• Debole: unita
` piu` indipendenti.
Es. multicomputer.
CPU
Bus
(a)
Architetture parallele
33 / 71
Miglioramento delle
prestazioni
(Architettura degli Elaboratori)
35 / 71
Componenti di un
calcolatore parallelo
• Unita
` di memoria. Spesso partizionata per poter
essere condivisa tra piu` processori.
• Rete di interconnessione.
• Nei multiprocessori collegano processori e moduli di
memoria.
• Nei multicomputer collegano le unita
` di calcolo.
Architetture parallele
34 / 71
N-body problem
50
Linear speedup
40
Awari
30
20
10
Skyline matrix inversion
0
10 Elaboratori)
20
(Architettura
degli
30
40
Number of CPUs
50
60
Architetture
parallele
36 / 71
Memoria
• Unita
` di calcolo. Si usano processori standard.
(Architettura degli Elaboratori)
Architetture parallele
60
0
Architetture parallele
(d)
Prestazione
Problemi:
• Le unita
` di calcolo devono sincronizzarsi tra di
loro, overhead di computazione (lavoro extra).
• Memoria, o altre risorse condivise, creano
conflitti tra le unita` di calcolo.
Conseguenze:
• difficilmente n unita
` svolgono un lavoro n volte
piu` velocemente,
• a volte un aumento delle unita
` di calcolo porta a
un peggioramento delle prestazioni.
(Architettura degli Elaboratori)
(c)
Scalabilita` dipende sia dall’architettura che dai
problemi considerati:
Speedup
(Architettura degli Elaboratori)
(b)
37 / 71
Consistenza della memoria
Una memoria con comportamento ideale
(esecuzione in ordine, tutti i processore hanno la
stessa visione della memoria) e` troppo lenta.
Ma l’ordine di accesso ai dati in memoria non puo`
essere arbitrario,
vanno stabilite regole minime per rendere
prevedibile il comportamento del codice.
• Sequenziale: tutte le CPU vedono lo stesso
ordine.
• Di processore: preserva: le scritture di ogni
CPU, la scrittura di ogni indirizzo.
• Debole: prevede richieste di sincronizzazione,
• Dopo
(Architettura
degli Elaboratori)
Architetture parallele
39 / 71
il rilascio: sincronizzazione
locale.
• Composta da diverse unita
` operanti in parallelo.
• Struttura complessa, dati replicati:
• ogni core possiede una cache locale,
• cache di alto livello comune a piu
` core,
• memoria principale comune a piu
` processori,
`
eventualmente divisa su piu` unita.
• Tempi di accesso ai dati dipendo dalla loro
posizione rispetto al processore.
Per preservare l’efficienza, sono ammessi
accessi alla memoria fuori ordine:
i dati disponibili vengono subito letti o scritti.
(Architettura degli Elaboratori)
Architetture parallele
38 / 71
Reti di interconnessione
Equivalente sofisticato dei bus.
Componente fondamentale: a volte la componente
piu` costosa del calcolatore.
Composte da:
• Link (connessioni - cavi - bus)
paralleli o seriali
• Switch (instradatori - commutatori)
• Interfacce (Processori - rete - memorie)
(Architettura degli Elaboratori)
Architetture parallele
40 / 71
Switch
Topologie di rete
Metodi di comunicazione:
• Circuit switching,
• Store and forward: messaggio diviso in
pacchetti.
input, output, common buffering
Routing: determinazione del percorso.
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
Input port
CPU 1
Output port
A
B
End
of
packet
C
Four-port switch
D
Middle
of
packet
CPU 2
Front of packet
(Architettura degli Elaboratori)
Architetture parallele
41 / 71
(Architettura degli Elaboratori)
Topologie di rete
Classificazione di Flynn (1972)
massimizzare la ampiezza di banda,
evitare colli di bottiglia,
minimizzare le distanze (in numero di archi):
diametro.
• SISD Single Instruction Single Data (macchina
di von Neumann)
• SIMD Single Instruction Multiple Date
(Computer Vettoriali)
• Configurazione: stella, completamente
• MIMD Multiple Instruction Multiple Data
interconnessa, albero, griglia, doppio toroide,
ipercubo.
geometria fissa o variabile
(Architettura degli Elaboratori)
42 / 71
Tassonomia dei computer
paralleli
Modo di strutturare le unita` di calcolo:
• Obiettivi
•
•
•
Architetture parallele
Architetture parallele
(Multiprocessori e multicomputer)
• MISD Multiple Instruction Multiple Data (nessun
esempio)
43 / 71
(Architettura degli Elaboratori)
Una classificazione piu` fine
Architetture parallele
44 / 71
SIMD: Array processor
Control unit
Parallel computer architectures
Broadcasts instructions
SISD
SIMD
MISD
(Von Neumann)
MIMD
?
Vector
processor
Array
processor
Multiprocessors
Multicomputers
8 × 8 Processor/memory grid
Processor
UMA
COMA
NUMA
MPP
COW
Memory
Bus
Switched
CC-NUMA
NC-NUMA
Shared memory
(Architettura degli Elaboratori)
Grid
Hypercube
` ILLIAC IV
Piu` processori controllati da una unita:
Message passing
Architetture parallele
45 / 71
GPU (General Purpose
Unit)
ogni core ha una memoria privata,
gruppi di core condividono una memoria locale,
esiste una memoria comune a tutti i core.
(Architettura degli Elaboratori)
Architetture parallele
Architetture parallele
46 / 71
GPGPU (General Purpose
GPU)
Le schede grafiche sono un implementazione
moderna degli array processor.
• La computazione nelle GPU (Graphical process
uniti) avviene secondo lo schema array
processor:
• la stessa operazione eseguita da semplici core
su dati diversi.
• struttura della memoria complessa:
•
•
•
(Architettura degli Elaboratori)
47 / 71
• Con i GPGPU si utilizzano le GPU per calcoli
generici (non grafici),
solo alcuni tipi di calcolo adatti a questo tipo di
computazione,
si sfruttano l’elevato numero di core (Nvidia
Fermi - 512 Core).
• nuovi linguaggi di programmazione su GPGPU
•
•
CUDA (Nvidia)
OpenCL (Generico, usabile su piu` schede grafiche).
(Architettura degli Elaboratori)
Architetture parallele
48 / 71
Nvidia Fermi
SIMD: Vector processor
Input vectors
Vector ALU
ALU e Registri operano su vettori: CRAY.
Gerarchia di memoria: locale al singolo core,
condivisa tra gruppi di core, memoria comune.
(Architettura degli Elaboratori)
Architetture parallele
49 / 71
(Architettura degli Elaboratori)
SIMD instruction
Architetture parallele
SIMD instruction
I processori attuali implementano istruzioni vettoriali.
Si distingue tra:
Estensioni ai linguaggi macchina.
• istruzioni multimediali: lunghezza fissa.
ISA x86:
• MMX (MultiMedia eXtension)
• SSE (Streaming SIMD Extension), ... , SSE4
• AVX (Advance Vector eXtension)
Utilizzati registri molto lunghi, centinaia di bit,
contenenti vettori di dati (byte, half-word, word)
su cui operare con istruzioni vettoriali.
• istruzioni vettoriali: insiemi di dati di lunghezza
(Architettura degli Elaboratori)
Architetture parallele
variabile, parametriche
Vantaggi:
• si sfrutta la legge di Moore (i tanti transistor a
disposizione),
• istruzioni vettoriali permettono un codice piu
`
compatto.
51 / 71
(Architettura degli Elaboratori)
Calcolatori MIMD
Architetture parallele
53 / 71
SMP (Symmetric Multi Processor): quando i
processori hanno la stessa visione della memorie e
dei dispositivi I/0:
(Architettura degli Elaboratori)
CPU
CPU
M
CPU
CPU
M
CPU
CPU
M
Cache
Bus
(a)
(b)
(c)
• L’implementazione piu
` semplice di un sistema
multiprocessore.
• Bus limita il numero di CPU utilizzabili (16).
• Cache di grosse dimensioni per limitare
l’accesso al bus.
• Necessita
` di mantenere la coerenza della
cache.
(Architettura degli Elaboratori)
Architetture parallele
Architetture parallele
54 / 71
Snooping cache
Shared
memory
Private memory
52 / 71
Tutti i processori hanno stessi tempi di accesso alla
memoria,
SMP con singolo bus
Shared memory
Architetture parallele
Multiprocessori UMA
• multiprocessor
• UMA Uniform Memory Access
• NUMA Non Uniform Memory Access
• COMA Cache Only Memory Access
• multicomputer
• MPP Massive Parallel Processor
• COW Cluster Of Workstation (NOW Network Of W.)
(Architettura degli Elaboratori)
50 / 71
55 / 71
Le cache spia il traffico sul bus per garantire la
coerenza.
Diverse implementazioni: Write through
• Read Miss – Lettura dalla memoria.
• Read Hit – Dati locali.
• Write Miss – Aggiorna memoria - Invalida altre
linee.
• Write Hit – Aggiorna memoria e cache – Invalida
altre linee.
Molti accessi al bus: semplice ma poco efficiente.
(Architettura degli Elaboratori)
Architetture parallele
56 / 71
Snooping cache:
protocollo MESI
MESI, esempio
CPU 1
CPU 2
CPU 3
Memory
(a)
Protocollo write back.
Utilizzato nei processori Core.
Ogni linea di cache viene marcato in uno tra 4 modi:
CPU 1 reads block A
A
Exclusive
Bus
Cache
CPU 1
CPU 2
CPU 3
Memory
(b)
CPU 2 reads block A
A
Shared
Shared
• Exclusive (sola copia in cache);
Bus
• Shared (linea presente in altre cache);
CPU 1
CPU 2
CPU 3
Memory
(c)
CPU 2 writes block A
A
• Modified (linee cache diversa da quella in
Modified
Bus
memoria);
• Invalid (linea non valida).
CPU 1
CPU 2
CPU 3
A
A
Memory
(d)
Shared
CPU 3 reads block A
Shared
Bus
CPU 1
(Architettura degli Elaboratori)
Architetture parallele
57 / 71
(e)
CPU 2
CPU 3
Memory
(Architettura degli Elaboratori)
A
CPU 2 writes block A
Architetture
parallele
58 / 71
Modified
Bus
CPU 1
CPU 2
CPU 3
Memory
(f)
CPU 1 writes block A
A
UMA con crossbar switch
UMA con reti a
commutazione
Modified
Bus
Processori e memorie connesse con un crossbar
switch, (Sun Fire E25K).
Rete non bloccante.
Elevato numero di switch. (O(n2 ))
Rete Omega
• Rete bloccante.
• Limitato numero di switch. (O(n log n))
111
110
101
100
011
010
001
000
Memories
3 Stages
Crosspoint
switch is open
CPUs
Memories
000
000
001
1A
2A
000
3A
b
b
b
001
001
CPUs
010
010
(b)
011
1B
2B
100
011
b
100
101
1C
110
101
111
110
(Architettura degli Elaboratori)
Open
crosspoint
switch
101
59 / 71
a
1D
111
Architetture parallele
100
3C
2C
a
(c)
Closed
crosspoint
switch
010
3B
011
Crosspoint
switch is closed
a
(Architettura degli Elaboratori)
2D
a
3D
110
111
Architetture parallele
60 / 71
(a)
Multiprocessori NUMA
Multiprocessori NUMA
Not Uniform Memory Access
CPU Memory
CPU Memory
• Memoria locale e remota
CPU Memory
CPU Memory
• Un unico spazio di indirizzamento
• maggiore scalabilita:
` superano il limite delle 100
MMU
Local bus
Local bus
Local bus
CPU
Local bus
• necessita
` di ridistribuire i dati
System bus
(Architettura degli Elaboratori)
Architetture parallele
Hardware DSM Distributed Shared Memory.
61 / 71
(Architettura degli Elaboratori)
Architetture parallele
Si dividono in:
Multicomputer
• CC-NUMA presenza di caching – limita gli
accessi remoti – directory (invece di snoooping
cache) per garantire la coerenza
• NC-NUMA assenza di caching – aumentano gli
accessi – paginazione sofisticata page
scanner, per ridistribuire i dati
• COMA Cache Only Memory Access – la
memoria locale e` vista come una grande
memoria cache – problemi recupero dati.
(Architettura degli Elaboratori)
Architetture parallele
62 / 71
63 / 71
CPU con spazio privato di memoria, non
direttamente accessibile
Vantaggi:
• maggiore scalabilita,
`
• efficienti nell’eseguire in parallelo processi
indipendenti (o con poca dipendenza). Es.
server web.
Caratteristiche:
• sistemi fault-tollerance,
• i singoli computer possono essere SMP con bus
singolo.
(Architettura degli Elaboratori)
Architetture parallele
64 / 71
Multicomputer
CPU
Massive Parallel Processor
MPP
Node
Memory
…
• Gli attuali supercomputer
…
Local interconnect
Disk
and
I/O
…
Local interconnect
Disk
and
I/O
• Un elevato numero di processori standard
• Rete di interconnessione sofisticata
Communication
processor
• Librerie software parallelo
• Fault tollerance: necessario per l’elevato
High-performance interconnection network
numero di componenti
• Esempi: BlueGene: ∼: 400K CPU, Red Storm
10K CPU Opeteron.
Si dividono in due categorie.
(Architettura degli Elaboratori)
Architetture parallele
65 / 71
(Architettura degli Elaboratori)
BlueGene
Progetto IBM.
Record di prestazioni teoriche ed effettive.
Campi d’applicazione: scacchi, simulazione:
protein-unfolding, sistemi biologici (cervello, cuore),
cosmologia.
Architetture parallele
66 / 71
Cluster of workstation
COW
• Rete di interconnessione standard: si sfruttano i
progressi nelle reti.
• Dispositivi economici, facilmente assemblabili,
• possono raggiungere prestazioni paragonabile
ai MPP.
• Centralizzati o decentralizzati.
(Architettura degli Elaboratori)
Architetture parallele
67 / 71
Esempio: Cluster Google
(Architettura degli Elaboratori)
Architetture parallele
68 / 71
Esempio: Cluster Google
Un numero limitato di datacenter (12) di grosse
dimensioni.
Il progetto poco pubblicizzato.
Principi costruttivi:
• utilizzare componenti economici (desk-top, rete
Ethernet) di largo uso, con il miglior rapporto:
prestazioni/(prezzo + consumi);
(consumi ∼100MW)
• l’affidabilita
` ottenuta attraverso ridondanza, la
rottura di un componente non compromette il
sistema.
(Architettura degli Elaboratori)
Architetture parallele
69 / 71
Grid computing
Livello successivo di computazione parallela:
Computazione distribuita su calcolatori connessi via
web.
• meccanismi di protezione,
• gestione della risorse di calcolo,
• distribuzione del carico,
• sistemi di calcolo non omogenei, definizione di
uno standard comune.
(Architettura degli Elaboratori)
Architetture parallele
71 / 71
(Architettura degli Elaboratori)
Architetture parallele
70 / 71