information - Agenda Catania

Transcript

information - Agenda Catania
Introduzione ai sistemi di calcolo parallelo
Giovanni Erbacci
Gruppo Supercalcolo- CINECA
[email protected]
II corso avanzato di calcolo e grid computing
Catania 25-29 settembre 2006
www.cineca.it
Argomenti
Il modello di von Neumann
Verso il parallelismo effettivo
Pipelining
Classificazione di Flynn
Architetture vettoriali
Architetture Parallele
© CINECA 2006
Giovanni Erbacci
2
1
Modello di von Neumann
Calcolatore Convenzionale
Controllo
Memoria
Input
Output
………
Unità Aritm.
Logica
Dati
Controllo
Le istruzioni vengono processate sequenzialmente:
1
2
3
4
5
un istruzione viene caricata dalla memoria (fetch) e decodificata
vengono calcolati gli indirizzi degli operandi;
vengono prelevati gli operandi dalla memoria;
viene eseguita l'istruzione;
il risultato viene scritto in memoria (store).
© CINECA 2006
Giovanni Erbacci
3
Calcolatori più Veloci
aumentare la velocità dei
componenti elettronici
• Limite imposto dalla velocità
della luce
• Problema della dissipazione
del calore
•
aumentare il grado di parallelismo
architetturale (numero di attività che
possono essere compiute
contemporaneamente)
© CINECA 2006
Giovanni Erbacci
Performance
•
Processori
Gap
Memoria
Tempo
4
2
Legge di Moore
Legge empirica che afferma che la complessità dei dispositivi (numero di
transistor per sqare inch nei microprocessori) raddoppia ogni 18 mesi.
Gordon Moore, co-founder di Intel, 1965
Si stima che la legge di Moore valga ancora almeno per questo decennio.
© CINECA 2006
Giovanni Erbacci
5
Altri fattori che influenzano le
Prestazioni
ArithmeticLogical Unit
ALU
Control
Unit
Dati
Indirizzi
Memoria
Centrale
Device
Oltre alla potenza del processore, altri fattori influenzano le
prestazioni degli elaboratori:
- dimensione della memoria
- larghezza di banda (bandwidth) fra memoria e processore
- larghezza di banda verso il sistema di I/O
- dimensione e larghezza di banda della cache
- latenza fra processore, memoria e sistema di I/O
© CINECA 2006
Giovanni Erbacci
6
3
Primordi del Parallelismo
Miglioramenti architetturali
Memoria bit-parallel e Aritmetica bit-parallel
Processori indipendenti per l’attività di I/O
Memoria interleaved
Gerarchie di memoria
Unità funzionali multiple
Unità funzionali segmentate
Pipelining
Miglioramenti software
Multiprogrammazione e
Look-ahead e scheduling delle istruzioni
© CINECA 2006
Giovanni Erbacci
7
Verso il Parallelismo effettivo
Sistemi vettoriali
Array processors
Architetture sistoliche
Very Long Instruction Word (VLIW)
Sistemi Multiprocessore
Sistemi Multicomputer
© CINECA 2006
Giovanni Erbacci
8
4
IBM PC XT (1980) 4.77 MHz => 210 ns
Commodity DRAM T. acc. ≅ 200 ns
Pentium II (1998)
Commodity DRAM
300 MHz => 3.3 ns
T. acc. ≅ 50 ns
La performance dei processori raddoppia ogni 18 mesi
mentre quella della memoria raddoppia circa ogni 6 anni.
© CINECA 2006
Cache
Cache
Memory
Memory
Memoria
Memoria
Primaria
Primaria
Minor costo
Registri
Registri
Maggior velocità
Tempo di accesso alla memoria: indica la velocità con la
quale si può referenziare una locazione di memoria
Tempo di ciclo della memoria: indica il tempo che deve
trascorrere prima di un nuovo accesso a una stessa
locazione di memoria
Negli ultimi anni questi tempi sono molto migliorati
rendendo possibili sistemi di memoria più veloci ma al
tempo stesso è diminuito anche il tempo di clock del
processore:
Maggior Capacità
Gerarchie di Memoria
Memoria
Memoria
Secondaria
Secondaria
Giovanni Erbacci
9
Cache Memory
Unità di memoria di dimensioni ridotte usata come buffer per i dati che
vengono scambiati fra la memoria centrale e il processore.
• Consente di ridurre il tempo speso dal processore in
attesa dei dati dalla memoria principale.
• L'efficienza della cache dipende dalla località dei
riferimenti nei programmi
L'instruction buffer del CDC
– località temporale: una istruzione o un dato possono essere
referenziati più volte
6600 era costituito da 8
registri di 60 bit ciascuno
(istruzioni di 15 o 30 bit).
– località spaziale:
Il Cray Y-MP aveva 4
instruction buffer di 128
parcel (16 bit) per CPU
(istruzioni di 1, 2, o 4 parcel).
quando si referenzia una locazione di
memoria, è molto probabile che vengano
referenziate anche le locazioni adiacenti.
• Diversi calcolatori dispongono anche di cache per le
istruzioni (o instruction buffer) oppure di cache che
contengono sia dati che istruzioni:
– l'istruzione viene prelevata dalla cache anziché dalla memoria.
– un'istruzione può essere eseguita ripetutamente senza ulteriori
riferimenti alla memoria principale.
© CINECA 2006
Giovanni Erbacci
Ogni processsore del Cray
T3E ha una cache per le
istruzioni di 8 KByte, una per i
dati di 8KByte e di una di
secondo livello di 96KByte.
10
5
Cache Memory / 1
E' demandato all'abilità del
sistema far rientrare le istruzioni che
compongono un kernel
computazionale pesante (es. un loop)
all’interno della cache, se queste
possono esservi contenute per intero.
Lo stesso vale per i dati, ma in
questo caso l’opera di ottimizzazione
coinvolge anche il programmatore
Registri
2 ns
L1 On-chip
4 ns
L2 On-Chip
5 ns
L3 Off-Chip
30 ns
Memoria
220 ns
DEC Alpha 21164 (500 MHz):
Tempo di accesso alla memoria
© CINECA 2006
Giovanni Erbacci
11
Organizzazione della Cache
La cache è divisa in slot della stessa dimensione (linee)
Ogni linea contiene k locazioni di memoria consecutive (es. 4
word).
Quando è richiesto un dato dalla memoria, se questo non è già in
cache, viene caricata dalla memoria l’intera linea di cache che lo
contiene, sovrascrivendo così il contenuto precedente della linea.
Memoria
Cache
© CINECA 2006
Giovanni Erbacci
12
6
Organizzazione della Cache / 1
Quando si modifica un dato memorizzando un nuovo valore in
cache, occorre aggiornare il dato anche in memoria principale:
Cache write-back - i dati scritti
nella cache vi rimangono finché
la linea di cache non è richiesta
per
memorizzare
altri
dati
quando si deve rimpiazzare la
cache il dato viene scritto
in
memoria; comune nei sistemi
mono-processore.
Cache write-through – i dati
vengono scritti immediatamente
nella cache e nella memoria
principale.
M
P1
P2
Cache P1
Cache P2
Nei sistemi con più processori occorre gestire la coerenza della
cache: per accedere a dati aggiornati i processori devono essere
a conoscenza dell’attività delle cache locali
© CINECA 2006
Giovanni Erbacci
13
Mapping
Poiché in ogni istante temporale la
cache può contiene solo un sottoinsieme della memoria, occorre sapere
quale: si tratta di associare un insieme
di locazioni di memoria ad una linea di
cache (mapping).
In base al mapping la cache può essere
organizzata in uno dei seguenti modi:
- Direct mapped
- Fully associative
modo con
cui leassociative
locazioni di memoria
- Set
Il
vengono
mappate nelle linee di cache può incidere sulle
prestazioni
dei programmi (due locazioni di
memoria pesantemente usate possono essere
mappate oppure no sulla stessa linea).
© CINECA 2006
Giovanni Erbacci
Memoria
Cache
14
7
Cache Direct Mapping
Con questo
schema, se ad es. la
dimensione della cache è di
8 Kbyte e la memoria
centrale ha word di 8 Byte,
la prima locazione di
memoria (word 1) viene
mappata sulla linea 1, così
come la locazione d+1,
2d+1, 3d+1 ecc. (dove d =
N° linee * N° word per linea).
1
1.9
2
725
3
51.9
4
-18.5
5
1.7
6
-25.3
…
……
1024
1025
1026
1027
1028
Linea
1
1.9
725
Linea
2
1.7
-25.3
Linea
3
Linea
4
Linea
5
…..…
1029
51.9
-18.5
……
Linea 256
1030
….
Cache
2048
2049
2050
Memoria
© CINECA 2006
Giovanni Erbacci
15
Cache Direct Mapping / 1
Indirizzo
Contenuto
Indica
la
linea
Memoria
Indica la
parola
all’interno
della linea
© CINECA 2006
0
0000
000
00
1.9
1
0000
000
01
725
2
0000
000
10
51.9
3
0000
000
11
-18.5
4
0000
001
00
1.7
5
0000
001
01
-25.3
..
….
…
..
……
10
0000
010
10
11
0000
010
12
0000
011
..
….
…
..
29
0000
111
30
0000
31
32
33
Linea
0
1.9
725
Linea
1
1.7
-25.3
11
Linea
2
00
Linea
3
Linea
4
01
Linea
5
111
10
Linea
6
0000
111
11
Linea
7
0001
000
00
0001
000
01
..
….
…
..
62
0001
111
10
63
0001
111
11
64
0010
000
00
65
0010
000
……
……
51.9
-18.5
Cache
8 linee
4 word per linea
01
Giovanni Erbacci
16
8
Cache Direct Mapping / 2
Quando si hanno riferimenti di memoria che alternativamente puntano
alla stessa linea di cache (es. word 1, word 1025, word 1, word 1025,
ripetutamente), ogni riferimento causa un cache miss e si deve
rimpiazzare la linea appena inserita.
Si genera parecchio lavoro aggiuntivo (overhead); questo fenomeno è
detto thrashing.
© CINECA 2006
Giovanni Erbacci
17
Memoria
Cache Set Associative
1
1.9
2
725
3
51.9
4
-18.5
5
1.7
6
-25.3
…
……
2 way set associative
2048 word, linee di 4 word
1025
66
1026
71
1027
33
1028
100
1029
17
1030
….
2048
Cache
1024
Linea
1
66
Linea
2
17
Linea
1
1.9
725
Linea
2
1.7
-25.3
Linea
3
Linea
4
Linea
5
…..…
……
71
33
51.9
-18.5
100
Banco 2
Linea 256
2049
Banco 1
2050
© CINECA 2006
Giovanni Erbacci
18
9
Unità Funzionali Multiple
Nei calcolatori tradizionali, la CPU è costituita da un
insieme di registri generali, da alcuni registri speciali (es. il
program counter) e dall'unità aritmetico logica (ALU) che,
una per volta, calcola le operazioni.
Un primo passo verso il parallelismo consiste nel
suddividere le funzioni dell'ALU e progettare unità
indipendenti
capaci di operare in parallelo (unità
funzionali indipendenti).
E' compito del compilatore esaminare le istruzioni e
stabilire quali operazioni possono essere fatte in parallelo,
senza alterare la semantica del programma.
© CINECA 2006
Giovanni Erbacci
19
Pipelining
Il concetto di pipelining è analogo a quello di catena di
montaggio dove in una linea di flusso (pipe) di stazioni
di assemblaggio gli elementi vengono assemblati a
flusso continuo.
Idealmente tutte le stazioni di assemblaggio devono
avere la stessa velocità di elaborazione altrimenti la
stazione più lenta diventa il bottleneck dell'intera pipe.
© CINECA 2006
Giovanni Erbacci
20
10
Pipelining / 1
Un task T viene scomposto in un insieme di sotto task
{T1,T2,...Tk} legati da una relazione di dipendenza: il task Tj
non può partire finchè tutti i sotto task precedenti {Ti ,∀ i<j}
non sono terminati
Sovrapposizione delle operazioni in una pipe a 4 stadi
Spazio
Tj
i
j mo subtask del task i mo
S4
T
1
4
S3
T
1
T
2
2
S1
T
1
1
3
4
4
T
2
T
3
T
T
2
T
3
T
4
T
3
T
2
3
2
3
T
1
4
4
T
5
T
....
5
4
....
3
....
5
2
....
5
1
3
T
4
3
2
4
T
1
1
T
1
2
1
0
2
4
T
3
S2
T
5
6
7
8
diagramma spazio-temporale
© CINECA 2006
9
10
Tempo(cicli)
Giovanni Erbacci
21
Pipeline di Istruzioni
S1
S2
Fetch
istruzioni
0
I1
1
0
I3
1
I2
3
4
5
6
7
8
S4
Esecuzione
S5
Store
risultato
10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
9
I4
2
I5
3
I6
4
I7
5
I8
6
........
7
8
10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
9
Time
I3
I4
I5
I6
© CINECA 2006
Fetch
operandi
Time
I2
I1
2
S3
Decodifica
I7
I8
........
Giovanni Erbacci
22
11
Classificazione di Flynn
M. J. Flynn
Very high speed computing systems, proceedings of the IEEE (1966).
Some computer organizations and their effectiveness, IEEE Transaction on
Computers.(1972).
"The moltiplicity is taken as the maximum possible
number of simultaneous operations (instructions) or
operands (data) being in the same phase of
execution at the most constrained component of the
organization"
-Categorizza una architettura dalla molteplicità dell'hardware usato per
manipolare stream di istruzioni e dati.
- Considera lo stream delle istruzioni (sequenza delle istruzioni eseguite dal
calcolatore) e lo stream dei dati (sequenza dei dati usati per eseguire uno
stream di istruzioni)
SI
MI
Single Instruction stream
Multilpe Instruction stream
SD
MD
Single Data stream
Multilpe Data stream
4 combinazioni possibili: SISD, SIMD, MISD, MIMD
© CINECA 2006
Giovanni Erbacci
23
Sistemi SISD
Sistemi Sequenziali
- Corrisponde alla classica architettura di von Neumann.
- Sistemi scalari monoprocessore.
- L'esecuzione delle istruzioni può essere pipelined (Cyber
76).
- Ciascuna istruzione aritmetica inizia un'operazione
aritmetica
CU
IS
PU
CU
PU
MM
DS
IS
© CINECA 2006
DS
MM
Control Unit
Processing Unit
Memory Module
Data stream
Instruction Stream
Giovanni Erbacci
24
12
Sistemi SIMD
Parallelismo Sincrono
MM1
DS2
IS
• I sistemi SIMD hanno una
sola unità di controllo
• Una singola istruzione opera
simultaneamente su più dati.
• Appartengono a questa
classe array processor e
sistemi vettoriali
CU
PU2
MM2
.
.
.
.
.
.
DSn
PUn
CU
PU
MM
DS
IS
© CINECA 2006
DS1
PU1
MMn
Control Unit
Processing Unit
Memory Module
Data stream
Instruction Stream
Giovanni Erbacci
25
Sistemi MIMD
Parallelismo Asincrono
IS1
•
•
•
Più processori eseguono
istruzioni diverse e
operano su dati diversi.
Versione multiprocessore
della classe SIMD.
Spazia dai linked main
frame computer alle
grandi reti di microprocessori.
CU1
PU1
IS2
DS1
MM1
DS2
CU2
PU2
MM2
.
.
.
.
.
.
.
.
.
CUn
ISn
DSn
PUn
MMn
ISn
IS2
IS1
CU Control Unit
PU
MM
DS
IS
© CINECA 2006
Giovanni Erbacci
Processing Unit
Memory Module
Data stream
Instruction Stream
26
13
Calcolatori Vettoriali
Dispongono di un set di istruzioni vettoriali
che si aggiunge al set di istruzioni di
istruzioni scalari.
Le istruzioni vettoriali specificano una
particolare operazione che deve essere
eseguita su un determinato insieme di
operandi detto vettore.
In questo contesto un vettore è una lista
ordinata di valori scalari.
Le unità funzionali che eseguono istruzioni
vettoriali sfruttano il pipelining per esegure
la stessa operazione su tutte le coppie di
operandi.
© CINECA 2006
Giovanni Erbacci
Esempio
do i = 1, N
A(i) =
B(i)+C(i)
end do
V0 ← V1 + V2
© CINECA 2006
27
Unità Funzionale Add Floating Point
CP 0
.... B(3) B(2) B(1)
.... C(3) C(2) C(1)
CP 1
.... B(4) B(3) B(2)
.... C(4) C(3) C(2)
B(1)
C(1)
CP 2
.... B(5) B(4) B(3)
.... C(5) C(4) C(3)
B(2) B(1)
C(2) C(1)
CP 3
.... B(6) B(5) B(4)
.... C(6) C(5) C(4)
B(3) B(2) B(1)
C(3) C(2) C(1)
CP 4
.... B(7) B(6) B(5)
.... C(7) C(6) C(5)
B(4) B(3) B(2) B(1)
C(4) C(3) C(2) C(1)
CP 5
.... B(8) B(7) B(6)
.... C(8) C(7) C(6)
B(5) B(4) B(3) B(2) B(1)
C(5) C(4) C(3) C(2) C(1)
CP 6
.... B(9) B(8) B(7)
.... C(9) C(8) C(7)
B(6) B(5) B(4) B(3) B(2) B(1)
C(6) C(5) C(4) C(3) C(2) C(1)
CP 7
.... B(10) B(9) B(8)
.... C(10) C(9) C(8)
B(7) B(6) B(5) B(4) B(3) B(2)
C(7) C(6) C(5) C(4) C(3) C(2)
Giovanni Erbacci
B(1) + C(1)
28
14
Sistemi Paralleli di classe MIMD
Mainframes multiprocessor
A metà degli anni '70 si diffondono i primi mainframes multiprocessore:
Univac 1100/80 (1976), Burroughs B-7800 (1978), Cyber 170/720 (1979),
IBM 3081 (1980).
Solo il gestore del sistema beneficia del miglioramento del throughput
(numero di lavori completati per unità di tempo).
Rimane il von Neumann bottelneck.
Sistemi multiprocessor ed elaborazione parallela
E' interessante invece disporre di sistemi multiprocessore in cui le diverse
CPU possono essere attive in modo concorrente nella soluzione di un singolo
problema (elaborazione parallela).
Multicomputer
Un sistema multicomputer consiste di più calcolatori autonomi che possono
comunicare o meno l'uno con l'altro (distributed memory system).
Multiprocessor
In un sistema multiprocessor le diverse CPU che compongono il sistema
condividono una memoria centrale unica (shared memory system).
© CINECA 2006
Giovanni Erbacci
29
Esempi di Sistemi MIMD
Cray Y MP/8, Cray C90/16, Cray T90/32
Cray T3D, Cray T3E
IBM ES900-530-VF
IBM SP1, SP2, SP3, SP4
Ipercubi N-Cube
Ipercubi Intel
Paragon Intel
KSR1
Meiko
Parsytec GC-2
Thinking Machine Corp. CM5
Fujitsu AP 100 e VPP500
NEC SX4, SX5
SGI Origin 3800
© CINECA 2006
Giovanni Erbacci
30
15
Classificazione in Base alla Memoria
P
P
M
P
P
M
M
P
P
P
N
M
Sistema a Memoria
Condivisa
P
M
P
P
M
M
Sistema a Memoria Distribuita
© CINECA 2006
Giovanni Erbacci
31
Sistemi a Memoria Condivisa
I processori coordinano la loro attività, accedendo ai dati e alle istruzioni in
una memoria globale (shared memory), condivisa da tutti i processori
Uniform Memory Access (UMA)model <=> SMP: Symmetric Multi Processors
L’accesso alla memoria è uniforme: i processori presentano lo stesso tempo
di accesso per tutte le parole di memoria
l’interconnessione processore-memoria avviene tramite common bus,
crossbar switch, o multistage network.
ogni processore può disporre di una cache locale, le periferche sono
condivise.
Alcuni esempi: ETA10, Cray 2, Cray C90, IBM 3090/600 VF, NEC SX-5
I sistemi a memoria condivisa presentano un numero limitato di processori
(da 2 a 32) molto potenti (possoo presentare anche un’architettura vettoriale)
Questi multiprocessori sono chiamati tightly coupled systems per l’alto grado
di condivisione delle risorse
© CINECA 2006
Giovanni Erbacci
32
16
Sistemi a Memoria Distribuita
La memoria è distribuita fisicamente tra i processori (local memory).
NO-Remote Memory Access (NORMA) model
tutte le memorie locali sono private e può accedervi solo il processore locale
La comunicazione tra i processori avviene tramite un protocollo di comunicazione
a scambio di messaggi (message passing).
I messaggi che vengono instradati sulla rete di interconnessione
In genere si tratta di sistemi che presentano un numero elevato di processori (da
poche decine ad alcune migliaia), ma di potenza non troppo elevata, chiamati nodi
di elaborazione.
- Potenza del nodo.
- Topologia della rete di interconnessione
© CINECA 2006
Giovanni Erbacci
33
Sistemi NUMA
Non Uniform Memory Access (NUMA) model
La memoria è fisicamemte distribuita fra tutti i processori (ogni
processore ha una propria memoria locale)
L’insieme delle memorie locali forma uno spazio di indirizzi globale,
accessibile da tutti i processori
Supporto hw per far si che ogni processore possa indirizzare la memoria
di tutti i processori
Il tempo di accesso dal processore alla memoria non è uniforme:
l’accesso è più veloce se il processore
accede alla propria memoria locale;
quando si accede alla memoria dei
processori remoti si ha un delay dovuto
alla rete di interconnessione.
© CINECA 2006
Giovanni Erbacci
34
17
Il concetto di Nodo
P
Nodo 6
P
Network
M
P
Nodo 5
P
Nodo 1
Nodo 4
Nodo SMP
Nodo 2
© CINECA 2006
Nodo 3
Giovanni Erbacci
35
Condivisione Fisica e Logica
Condivisione fisica della memoria
le CPU hanno lo stesso spazio di indirizzamento
i valori scritti in una parola da una CPU possono essere letti da
un'altra.
Condivisione logica della memoria
è determinata da come il sw, in opposizione all'hw, vede il
sistema.
Quando due processi (programmi in esecuzione) condividono la
stessa memoria logica, le informazioni scritte in una struttura dati
da uno di questi, possono essere lette dall'altro.
Quando non c'è condivisione logica i processi devono
comunicare con forme di I/O (read e write di buffer) o tramite
message passing.
© CINECA 2006
Giovanni Erbacci
36
18
Rete di Interconnessione: definizioni
Grafo aciclico:
un grafo che non contiene cicli
grado:
il grado è il numero di linee connesse a un nodo in una data topologia. E’
equivalente al numero di primi vicini del nodo. E’ un indice della connettività
Un grado grande è un benefico perché identifica una molteplicità di paths.
Diametro:
il diametro di una rete è la distanza tra i due nodi più lontani (percorso più
lungo tra due nodi)
Un diametro piccolo corrisponde a una latenza bassa.
Neighbor:
Due nodi si dicono vicini se c’è un link che li connette.
© CINECA 2006
Giovanni Erbacci
37
Rete di Interconnessione
Cos’è una rete di interconnessione?
È l’insieme dei cavi che definiscono come i diversi processori di un calcolatore
parallelo sono connessi tra loro e con le unità di memoria.
Il tempo richiesto per trasferire i dati dipende dal tipo di interconnessione.
Il tempo di trasferimento è detto communication time.
la massima distanza che devono percorrere i dati scambiati tra due procecssori che
comunicano incide sulle prestazioni della rete.
Caratteristiche di una rete di interconnessione
Bandwidth: identifica la quantità di dati che possono essere inviati per unità di tempo
sulla rete. Occorre massimizzare la bandwidth
Latency: identifica il tempo necessario per instradare un messaggio tra due
processori. Si definisce anche come il tempo necessario per trasferire un messaggio
di lunghezza nulla. Occorre minimizzare la latenza
Altri aspetti da considerare
- Costo
- Scalabilità
- Affidabilità
- Diametro
- Degree
© CINECA 2006
Giovanni Erbacci
38
19
Connettività
Interconnessione completa (ideale)
Ogni nodo può comunicare
direttamente con tutti gli altri
nodi (in parallelo)
con n nodi si ha un'ampiezza di
banda proporzionale a n2.
il costo cresce proporzionalmente
a n2.
• Interconnessione indiretta (pratica)
– Solo alcuni nodi sono connessi direttamente. Un percorso diretto o indiretto
permette di raggiungere tutti i nodi.
– Il caso pessimo è costituito da un solo canale di comunicazione, condiviso da
tutti i nodi (es. un cluster di workstation collegate da una LAN).
– Occorrono soluzioni intermedie in grado di bilanciare costi e prestazioni
(mesh, albero, shuffle-exchange, omega, ipercubo, ...).
– La connettività è più ristretta: soluzione appropriata perché molti algoritmi
paralleli richiedono topologie di connessione più ristrette (locali). Es:
comunicazione tra primi vicini.
© CINECA 2006
Giovanni Erbacci
39
Topologia Mesh
In una network a griglia, i nodi sono disposti secondo un reticolo a k
dimensioni (k dimensional lattice) di ampiezza w, per un totale di wk nodi.
k=1 (array lineare)
k=2 (2D array) es. ICL DAP, Intel Paragon,
La comunicazione diretta è consentita solo tra i nodi vicini.
I nodi interni comunicano direttamente con altri 2k nodi.
© CINECA 2006
Giovanni Erbacci
40
20
Topologia Toroidale
Alcune varianti
del modello a mesh
presentano connessioni di
tipo wrap-around fra i nodi
ai bordi della mesh
(topologia toroidale).
Il Cray T3E adotta
una topologia toroidale
3D.
© CINECA 2006
Giovanni Erbacci
41
Topologia Ipercubo
Una topologia ipercubo (cube-connected) è formata da n =2k nodi connessi
secondo i vertici di un cubo a k dimensioni.
Ogni nodo è connesso direttamente a k altri nodi.
Il degree di una topologia ipercubo è log n ed anche il diametro è log n.
Esempi di calcolatori con questo tipo di network sono la CM2, NCUBE-2, Intel
iPSC860, SGI Origin.
© CINECA 2006
Giovanni Erbacci
42
21
Topologia Ipercubo / 1
Definizione ricorsiva:
H(i) = H(H(i-1),H(i-1))
Ogni nodo è connesso ad altri k nodi
k rappresenta la distanza tra i due punti più distanti (diametro).
Una network cube connected è una network butterfly le cui
colonne sono collassate in nodi singoli.
© CINECA 2006
Giovanni Erbacci
43
Topologia Tree
I processori sono I nodi terminali (foglie) di un albero
Il degree di una network con topologia ad albero con
N nodi è log2N e il diametro è
2 log 2(N) - 2
Fat tree
la bandwidh della network aumenta
all’aumentare del livello della rete.
Esempi: CM-5, Network Myrinet e QSNet
Piramide
Una network piramidale di ampiezza p è
un albero 4-rio completo con livelli, dove i nodi di
ciascun livello sono collegati in una mesh bidimensionale.
© CINECA 2006
Giovanni Erbacci
44
22