Il Supercalcolo
Architetture dei sistemi di calcolatori
Tassonomia di Flynn




SISD: Single instruction, single data
SIMD:Single instruction, multiple data
MISD: ??
MIMD
 Multiprocessore
 UMA: Uniform Memory Access
 COMA: Cache Only Memory Access
 NUMA: Not Uniform Memory Access
 Multicomputer
 MPP: Message Passing Processor
 COW: Cluster of Workstation
UMA
 L’accesso alla memoria è uniforme
 Architettura a Bus
 Sul Bus sono attestati i processori, le
memorie e gli eventuali bridge (PCI, SCSI …)
 Il problema è il mantenimento della
coerenza dei dati tra le caches
 Cache write through (pesante per il bus)
 Snooping Cache
 Cache write back con protocollo MESI
UMA
 Il bus diventa il collo di bottiglia
 Usare uno Split Transaction Bus migliora le
prestazioni ma non troppo
 Esistono anche reti di interconnessione Crossbar
Switch tra processori e memorie ma devo
aggiungere uno snooping bus per la coerenza delle
cache
 Importante la disposizione dei dati nelle memorie
 Queste sono soluzioni estreme che costano molto
UMA
 Potrei usare una rete multistage ma:






Costano comunque
Non standard
Ritardo aggiuntivo degli stages
Più bloccanti degli altri
Risoluzione confitti
Problemi di routing
UMA: e il S.O.?
 Varie soluzioni per il kernel
 Master/Slave: un processore dedicato al
S.O.,gli altri solo applicazioni
 Separate Executive: ogni processore fa girare
una copia separata del S.O.
 Simmetric Multi Processing: il S.O. gira dove
capita => necessari punti di sincronizzazione
nel kernel
NUMA
 Ogni processore ha la sua memoria e accede
più velocemente lì
 È una soluzione scalabile: posso arrivare fino a
migliaia di processori
 Non causano problemi
 Bandwidth tra CPU e memoria: si ingrandisce
automaticamente
 Latency: più o meno costante
 Cost: crescita lineare
 Phisical: problemi fisici (consumi, raffreddamento…)
NC-NUMA
 No Cache NUMA
 Metto in cache solo quello che ho nella
mia memoria
 Cruciale il piazzamento dei dati tra le
memorie
CC-NUMA
 Cache coherent NUMA
 Come garantisco la coerenza?
 Meccanismi directory based
 Directory memory-based
 L’elemento di directory, associato a una linea di
memoria ha un array di processori dove è il dato
 Directory cache-based
 Lista linkata tra i processori
COMA
 Cache only memory access
 Esistono solo cache
 Non usate
 Problema dell’ultima copia
 Problemi vari
Multicomputer
 Caratterizzati dal Message Passing
 Importante la rete di interconnessione
Rete di interconnessione: caratteristiche
 Topologia
 Diametro: distanza max o media tra due
nodi
 Bisection bandwidth: la larghezza di banda
che attraversa ogni bisezione della rete
 Dimentionality: numero di percorsi
alternativi (per la fault tolerance)
Rete di interconnessione
 Problemi di Routing
 Store & forward è troppo lento
 Cut Through
 Decido sul routing all’inizio del messaggio
 Se incontro un ostacolo
 Virtual cut through: il messaggio si ammassa nel
nodo ostacolo
 Wormhole routing: blocco tutto e il messaggio
resta spalmato su più nodi
Routing
 Tipo di decisione di routing
 Aritmetico
 Decisione matematica a partire dall’indirizzo del
destinatario
 Topologia fissa e semplice
 No fault tolerance
 Souce based
 La sorgente precalcola il percorso
 Table driven
 Gli algoritmi deterministici usano male la rete
 Problemi di velocità
 Rischio deadlock
I/O ad alte prestazioni
 Due orientazioni:
 Mass transfer: sequenziali e “prevedibili”
 Importante il transfer rate
 Transaction processing
 Importante l’access time
I/O ad alte prestazioni
 Anche i dischi crescono esponenzialmente
 Nella densità (lineare e per traccia)
 Meno nelle prestazioni
 Sia in terminio di seek time che di transfer
rate
 Problematico perché intervengono
problematiche fisiche (velocità di rotazione
dei dischi e movimento dei bracci)
I/O ad alte prestazioni
 Non blocking I/O (read)




Read anticipato
Chiamata bloccante dopo
Serie di chiamate non bloccanti
Call back signal (interrupt software)
 O/S Bypass
 Comunicazione diretta tra dispositivi e
applicazioni
 Pinning della memoria: divieto di paginazione
I/O ad alte prestazioni
 Parallelismo: più dischi
 Striping: suddivido i dati a strisce su più dischi
 Stripe factor: numero dischi
 Stripe depth: quanto è grande l’unità di suddivisione
dati
 RAID:
 Redundant Array of Independent – Inexpensive
Disk
 Fault tolerance (duplicazione e controlli di errore)
Tecnologia RAID
 RAID 0:




Separo i dati su più dischi
Parallelizzo le letture
Bene per i mass transfer
Bene per i transazionali
Tecnologia RAID
 RAID 1




Mirroring
Raid 0 duplicato
Fault tolerance perché ho duplicazione
Non miglioro le prestazioni in lettura
Tecnologia RAID
 RAID 2





Su alcuni dischi metto la codifica di Hamming
Poco usata
Costa e richiede sincronizzazione bit a bit
Bene solo per i mass transfer
Coda delle transazioni poco parallelizzabili
Tecnologia RAID
 RAID 3
 Come level 2 ma con la parità e non bit a bit
 L’hamming code crea gli svantaggi come in
RAID 2
Tecnologia RAID
 RAID 4
 Parità blocco a blocco su un disco
 Bene per il transfer rate
 Operazioni durante la modifica:
 Leggere old data
 Leggere old parity
 Old data (XOR) old parity per avere la parità degli altri dischi
 Trovare la nuova parità
 Store data
 Store parity
 Male per le transazioni: gli aggiornamenti delle parità sono
serializzati
 Mai usati
Tecnologia RAID
 RAID 5
 Come RAID 4 ma i blocchi di parità sono distribuiti
sui dichi
Tecnologia RAID
 RAID 6 o RAID DP
 Doppio meccanismo di ridondanza con bit su
dischi distinti
 Schema bidimensionale
Tecnologia RAID
 RAID 1-0
 Doppia virtualizzazione
 È un array RAID 0 di dischi virtuali, ogni disco
è un RAID 1
 RAID 0-3
 È un array RAID 0 di dischi virtuali e ogni
disco è un RAID 3
SCSI
 Il problema si sposta sull’I/O interconnect
 Small Computer System Interface
 Protocollo di comunicazione verso periferiche
generiche
 Bus o catena SCSI con indirizzamento
(settato a mano)
 Transazioni I/O di tipo Split Transaction
Esempi reali
 HIPPI
 SUPER HIPPI
 HPN: High performance Network
 SAN: System Area Network
 Fast Ethernet-Gigabit Ethernet
 Myrinet
 Fibre Channel
 NASD: Network Attached Storage Device
Constellation
 Nome “esotico” per un CC-NUMA
 Cluster di pochi nodi con molti processori
per nodo
COW
 Cluster Of Workstation
 Un insieme di calcolatori indipendenti e di
tipo COTS che cooperano per ottenere
alte prestazioni su un grosso problema (o
un grosso insieme di problemi)
 Indipendenti perché funzionano anche
fuori dal Cluster
 COTS: componenti “di serie”
Cluster
 Obiettivi:





Fault Tolerance
Scalabilità di costo
Scalabilità di prestazioni
Orientati al supercalcolo
Orientati al superlavoro transazionale
Caratterizzazione





Ruolo dei server aggiuntivi: attivo o passivo
Connessione ai dischi: interni ai nodi o nodo storage
Condivisione dati: shared nothing o shared data
Accesso ai dati: Read Only o Read & Write
Visione amministrativa: single image o configurazioni
separate
 Visione al programmatore: programmazione tradizionale
o message passing
 Visione esterna: Fuori (alle altre macchine) vedo la
molteplicità?
 Disposizione geografica: Locale o sparpagliata?
Esempi
 A mano!
 Download da Tucows o Download.com
 Seti@home o cracking codici
 HTTP redirect
 Rotating DNS
 Prodotti di load balancing
Scarica

Quadro generale del supercalcolo