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 più operazioni in
esecuzione allo stesso istante.
Memory
Control
unit
Input
Arithmetic
logic unit
Output
Accumulator
(Architettura degli Elaboratori)
Architetture parallele
1 / 70
(Architettura degli Elaboratori)
Architetture parallele
Cenni storici
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
2 / 70
3 / 70
(Architettura degli Elaboratori)
Architetture parallele
4 / 70
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
5 / 70
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 più veloci).
• nuove architetture (computazione più efficiente,
maggior parallelismo)
(Architettura degli Elaboratori)
Motivazioni per il
parallelismo
Architetture parallele
6 / 70
Parallelismo su un singolo
chip
Pipeline: divisione della (micro-)istruzione in stadi.
Altri vantaggi:
• tolleranza ai guasti: più unita di calcolo, un
guasto non necessariamente blocca il
calcolatore,
• architettura scalabile: posso aumentare le
prestazioni aggiungendo nuove unità 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 / 70
(Architettura degli Elaboratori)
2
3
4
5
6
7
Time
(b)
Architetture
parallele
…
8 / 70
Processori superscalari
Parallelismo a livello di
istruzione
Integer pipeline
Execute
Fetch
Decode
Cache
N1
Group
N3
Register
X1
X2
Più istruzioni, di uno stesso processo, eseguite
contemporaneamente.
• Vantaggi: si utilizza codice sequenziale, facile
da utilizzare, non è necessario riscrivere il
codice.
• Svantaggi: difficile ottenere un elevato grado di
parallelismo.
N2
Write
X3
Floating-point/graphics pipeline
Più istruzioni iniziate contemporaneamente
Prestazioni: aumento di un fattore circa dieci
(Architettura degli Elaboratori)
Architetture parallele
9 / 70
Parallelismo su di un
singolo chip
Multiprocessori omogenei
Multiprocessori eterogeneo
(Architettura degli Elaboratori)
Architetture parallele
Architetture parallele
10 / 70
VLIW – Very Long
Instruction Words
Altre tecniche il parallelismo:
• Processori VLIW Very Long Instruction Words
• On-Chip Multi-threading
• Single-Chip Multiprocessor
•
•
(Architettura degli Elaboratori)
11 / 70
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 / 70
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 è 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
Più istruzioni possono essere collegate assieme ed
eseguiti contemporaneamente,
senza controllare l’indipendenza.
(Architettura degli Elaboratori)
Architetture parallele
13 / 70
(Architettura degli Elaboratori)
Itanium IA-64
14 / 70
Multi-threading
• Istruzioni condizionate, per evitare le istruzioni
di salto.
• Centinaia di registri, evito:
accessi in memoria,
dipendenza tra istruzioni.
• Caricamenti speculativi,
anticipo gli accessi in memoria.
a meno di page-fault.
Poco successo commerciale,
Prestazioni sotto le aspettative, difficile costruire
compilatori
il mercato ha preferito x86-64 (o AMD 64)
(Architettura conservativa.
degli Elaboratori)
Architetture parallele
scelta
Architetture parallele
Permette di sfruttare meglio le capacità di calcolo dei
processori superscalari (con più pipeline).
Il processore esegue più thread (processi (con
memoria condivisa)) contemporaneamente.
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)
15 / 70
(Architettura degli Elaboratori)
Architetture parallele
16 / 70
Multi-threading
Multi-threading
Può essere utilizzato in processori con singola
pipeline.
Più 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 istruzione,
numero elevato di commutazione di contesti,
si anticipano i possibili blocchi.
• m. grana grossa: si cerca di eseguire più
istruzioni per thread,
riduco le commutazioni.
(Architettura degli Elaboratori)
Architetture parallele
Processore con una singola pipeline:
Processore superscalare:
17 / 70
(Architettura degli Elaboratori)
Ripartizione risorse
Architetture parallele
18 / 70
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 / 70
(Architettura degli Elaboratori)
Architetture parallele
20 / 70
Multiprocessori omogenei
su un singolo chip
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:
- ARM
- Cell (Sony, Toshiba, IBM)
- Schede video.
La tecnologia attuale permette di inserire più
processori su di un chip.
(Architettura degli Elaboratori)
Architetture parallele
21 / 70
(Architettura degli Elaboratori)
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 / 70
Architetture parallele
22 / 70
Multipr. eterogenei su
singolo chip
SoC (System on Chip), in un chip:
• core principale di controllo;
• co-processori specializzati;
• memoria;
• bus di interconnessione,
diversi standard alternativi:
CoreConnect IBM, AMBA per CPU CPU ARM,
VCI (Virtual Component Interconncect)
Chip progettato combinando preesistenti progetti di
singole componenti (core).
(Architettura degli Elaboratori)
Architetture parallele
24 / 70
Parallelismo su più chip
Multiprocessori
Sistemi a memoria condivisa.
Più processori su più circuiti integrati.
• Maggiori aumenti di prestazioni.
• Necessità di nuovo codice (o di un adatto SO),
nuove problematiche.
• Considereremo due principali approcci:
multiprocessori e multicomputer.
P
P
P
P
P
P
Shared
memory
P
P
P
P
P
CPU
P
P
Architetture parallele
25 / 70
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 / 70
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.
• Non è necessario ripartire i dati tra le CPU
• Accesso alla memoria limita le unità di
computazione (il grado di parallelismo).
• Esempi: PC con multi-processore, server.
M
P
M
P
M
P
M
P
Messagepassing
interconnection
network
P
P
P
P
M
M
M
M
P
P
M
P
P
M
P
P
M
P
P
M
P
(Architettura degli Elaboratori)
Architetture parallele
27 / 70
(Architettura degli Elaboratori)
P
P
CPU
P
Messagepassing
interconnection
network
P
P
P
P
(a)
P
P
P
P
(b)
Architetture parallele
28 / 70
Multicomputer
• Ogni CPU ha un proprio spazio di memoria.
Machine 1
Machine 2
Application
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.
• Più semplice integrare numerose CPU, numero
unità limitato dalla capacità della rete di
interconnessione.
• Più difficili da programmare.
(Architettura degli Elaboratori)
Architetture parallele
29 / 70
Shared memory
Shared memory
Shared memory
(a)
(b)
(c)
(Architettura degli Elaboratori)
Simulazione memoria
condivisa
1
2
3
Granularità: complessità delle computazioni
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. multi-threading, multiprocessori,
multicomputer.
nel memoria della CPU,
in memoria disco,
nella memoria locale di un altra CPU.
DSM (Distributed Shared Memory).
Memoria condivisa tramite librerie.
•
•
Linda: programmi con tuple condivise.
Orca: programmi con oggetti condivisi.
(Architettura degli Elaboratori)
Architetture parallele
30 / 70
Catalogazione del
parallelismo
Memoria condivisa hardware.
Memoria condivisa tramite memoria virtuale,
paginazione.
Una pagina può trovarsi:
•
•
•
Architetture parallele
31 / 70
(Architettura degli Elaboratori)
Architetture parallele
32 / 70
Livello di accoppiamento
Scalabilità
• Forte: unità fortemente connesse, notevole
Una stessa idea architetturale può essere
implementata con un numero variabile di unità di
calcolo.
Un’architettura è scalabile se funziona correttamente
con molte unita di calcolo.
scambio di dati. Es. processori superscalari,
multiprocessori.
• Debole: unità più indipendenti.
Es. multicomputer.
CPU
Bus
(a)
(Architettura degli Elaboratori)
Architetture parallele
33 / 70
(b)
(Architettura degli Elaboratori)
(c)
(d)
Architetture parallele
Scalabilità - prestazioni
34 / 70
Scalabilità
Scalabilità dipende sia dall’architettura che dai
problemi considerati:
60
N-body problem
50
Linear speedup
40
Speedup
Problemi:
• Le unità di calcolo devono sincronizzarsi tra
loro, overhead di computazione (lavoro extra).
• Memoria, o altre risorse condivise, creano
conflitti tra le unità di calcolo.
Conseguenze:
• difficilmente n unità svolgono un lavoro n volte
più velocemente,
• a volte un aumento delle unità di calcolo porta a
un peggioramento delle prestazioni.
Awari
30
20
10
Skyline matrix inversion
0
(Architettura degli Elaboratori)
Architetture parallele
35 / 70
0
10 Elaboratori)
20
(Architettura
degli
30
40
Number of CPUs
50
60
Architetture
parallele
36 / 70
Componenti di un
calcolatore parallelo
Memoria
• Unità di calcolo. Si usano processori standard.
• Unità di memoria. Memorie cache locali alle
CPU,
memoria principale divisa in banchi per gestire
più richieste contemporanee.
• Rete di interconnessione.
• Tempi di accesso ai dati dipendo dalla loro
Nei multiprocessori, collegano processori e moduli di
memoria.
• Nei multicomputer, collegano le unità di calcolo.
•
(Architettura degli Elaboratori)
Architetture parallele
• Composta da diverse unità operanti in parallelo.
• Struttura complessa, dati replicati:
• ogni core possiede una cache locale,
• cache di alto livello comune a più core,
• memoria principale comune a più processori,
eventualmente divisa in banchi.
37 / 70
Consistenza della memoria
Una memoria con comportamento ideale
(esecuzione in ordine, tutti i processore hanno la
stessa visione della memoria) è troppo lenta.
Ma l’ordine di accesso ai dati in memoria non può
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 / 70
il rilascio: sincronizzazione
locale.
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 / 70
Reti di interconnessione
Equivalente sofisticato dei bus.
Componente fondamentale dei calcolatori paralleli.
Composte da:
• Link (connessioni - cavi - bus)
paralleli o seriali
• Switch (instradatori - commutatori)
• Interfacce (Processori - rete - memorie)
(Architettura degli Elaboratori)
Architetture parallele
40 / 70
Switch
Topologie di rete
Metodi di comunicazione:
• Circuit switching,
• Packed switching, Store and forward:
messaggio diviso in pacchetti.
(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
Input port
CPU 1
Output port
A
B
C
D
End
of
packet
Middle
of
packet
Four-port switch
CPU 2
Front of packet
Routing: determinazione del percorso.
(Architettura degli Elaboratori)
Architetture parallele
41 / 70
Topologie di rete
• Configurazione: stella, completamente
interconnessa, albero, anello, griglia, doppio
toroide, ipercubo.
Geometria fissa o variabile
Architetture parallele
42 / 70
Classificazione di Flynn (1972)
massimizzare la ampiezza di banda (bidirezionale),
evitare colli di bottiglia,
minimizzare le distanze (in numero di archi):
diametro.
(Architettura degli Elaboratori)
Architetture parallele
Tassonomia dei computer
paralleli
Modo di strutturare le unità di calcolo:
• Obiettivi
•
•
•
(Architettura degli Elaboratori)
43 / 70
• SISD Single Instruction Single Data (macchina
di von Neumann)
• SIMD Single Instruction Multiple Date
(Computer Vettoriali)
• MIMD Multiple Instruction Multiple Data
(Multiprocessori e multicomputer)
• MISD Multiple Instruction Multiple Data (nessun
esempio)
(Architettura degli Elaboratori)
Architetture parallele
44 / 70
Una classificazione più fine
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
Più processori controllati da una unità: ILLIAC IV
Message passing
Architetture parallele
45 / 70
(Architettura degli Elaboratori)
GPU (Graphical Process
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
46 / 70
Nvidia Fermi
Alcune schede grafiche sono un implementazione
moderna degli array processor.
• La computazione nelle GPU (Graphical process
unit) avviene secondo lo schema array
processor:
• la stessa operazione eseguita da semplici core
su dati diversi.
• struttura della memoria complessa:
•
•
•
Architetture parallele
512 Core.
Gerarchia di memoria: locale al singolo core,
condivisa tra gruppi di core, memoria comune.
47 / 70
(Architettura degli Elaboratori)
Architetture parallele
48 / 70
GPGPU (General Purpose
GPU)
SIMD: Vector processor
Input vectors
Si utilizzano le GPU per calcoli generici (non grafici)
• si sfrutta l’elevato numero di core,
• solo alcuni tipi di calcolo adatti a questo tipo di
computazione,
• nuovi linguaggi di programmazione su GPGPU
•
•
CUDA (Nvidia)
OpenCL (Generico, usabile su più schede grafiche).
(Architettura degli Elaboratori)
Architetture parallele
49 / 70
Vector ALU
ALU e Registri operano su vettori.
Supercomputer anni 70-80, CRAY.
(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
50 / 70
variabile, parametriche
Vantaggi:
• si sfrutta la legge di Moore (i tanti transistor a
disposizione),
• istruzioni vettoriali permettono un codice più
compatto.
51 / 70
(Architettura degli Elaboratori)
Architetture parallele
52 / 70
Calcolatori MIMD
Multiprocessori UMA
• multiprocessor
• UMA Uniform Memory Access
• NUMA Non Uniform Memory Access
• multicomputer
• MPP Massive Parallel Processor
• COW Cluster Of Workstation (NOW Network Of W.)
• Grid Computing
(Architettura degli Elaboratori)
Architetture parallele
53 / 70
Tutti i processori hanno stessi tempi di accesso alla
memoria,
SMP (Symmetric Multi Processor): quando i
processori hanno la stessa visione della memorie e
dei dispositivi I/0:
(Architettura degli Elaboratori)
SMP con singolo bus
CPU
CPU
M
CPU
CPU
M
CPU
CPU
M
Cache
Bus
(a)
(b)
(c)
• L’implementazione più semplice di un sistema
multiprocessore.
• Bus limita il numero di CPU utilizzabili (16).
• Cache di grosse dimensioni per limitare
l’accesso al bus.
• Necessità di mantenere la coerenza della
cache.
(Architettura
degli Elaboratori)
Architetture parallele
54 / 70
Snooping cache
Shared
memory
Private memory
Shared memory
Architetture parallele
55 / 70
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.
Semplice ma poco efficiente: troppe scritture in
memoria.
(Architettura degli Elaboratori)
Architetture parallele
56 / 70
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 / 70
(e)
CPU 2
CPU 3
Memory
(Architettura degli Elaboratori)
A
CPU 2 writes block A
Architetture
parallele
58 / 70
Modified
Bus
CPU 1
CPU 2
CPU 3
Memory
(f)
UMA con crossbar switch
CPU 1 writes block A
UMA con reti a
commutazione
A
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
010
3B
011
Crosspoint
switch is closed
100
011
b
100
101
1C
100
3C
2C
101
110
110
111
Closed
crosspoint
switch
(Architettura degli Elaboratori)
(c)
Open
crosspoint
switch
111
Architetture parallele
59 / 70
101
a
a
1D
(Architettura degli Elaboratori)
a
2D
a
3D
Architetture parallele
110
111
60 / 70
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 scalabilità: superano il limite delle 100
MMU
Local bus
Local bus
Local bus
CPU
• necessità di ridistribuire i dati
Local bus
System bus
(Architettura degli Elaboratori)
Architetture parallele
Hardware DSM Distributed Shared Memory.
61 / 70
(Architettura degli Elaboratori)
Architetture parallele
Multicomputer
Multicomputer
CPU con spazio privato di memoria, non
direttamente accessibile
Vantaggi:
CPU
…
Local interconnect
• efficienti nell’eseguire in parallelo processi
indipendenti (o con poca dipendenza). Es.
server web.
Disk
and
I/O
…
Local interconnect
Disk
and
I/O
Communication
processor
Caratteristiche:
• sistemi fault-tollerance,
• i singoli computer possono essere SMP con bus
singolo.
Architetture parallele
Node
Memory
…
• maggiore scalabilità,
(Architettura degli Elaboratori)
62 / 70
63 / 70
High-performance interconnection network
Si dividono in due categorie.
(Architettura degli Elaboratori)
Architetture parallele
64 / 70
Massive Parallel Processor
MPP
BlueGene
Progetto IBM.
Record di prestazioni teoriche ed effettive.
Campi d’applicazione: scacchi, simulazione:
protein-unfolding, sistemi biologici (cervello, cuore),
cosmologia.
• Gli attuali supercomputer
• Un elevato numero di processori standard
• Rete di interconnessione sofisticata
• Librerie software parallelo
• Fault tollerance: necessario per l’elevato
numero di componenti
• Esempi: BlueGene: ∼: 400K CPU, Red Storm
10K CPU Opeteron.
(Architettura degli Elaboratori)
Architetture parallele
65 / 70
Cluster of workstation
COW
(Architettura degli Elaboratori)
Architetture parallele
66 / 70
Esempio: Cluster Google
• 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 / 70
(Architettura degli Elaboratori)
Architetture parallele
68 / 70
Esempio: Cluster Google
Grid computing
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’affidabilità ottenuta attraverso ridondanza, la
rottura di un componente non compromette il
sistema.
(Architettura degli Elaboratori)
Architetture parallele
69 / 70
Computazione distribuita su calcolatori eterogenei,
distanti tra loro, connessi via web.
• organizzazione pear-to-pear,
• meccanismi di protezione, autenticazione
singola,
• gestione della risorse di calcolo (locale-grid),
• distribuzione del carico,
• sistemi di calcolo non omogenei, definizione di
uno standard comune.
(Architettura degli Elaboratori)
Architetture parallele
70 / 70