Post on 02-May-2015
Il SupercalcoloIl Supercalcolo
Architetture dei sistemi di calcolatoriArchitetture dei sistemi di calcolatori
Tassonomia di FlynnTassonomia di Flynn
SISD: Single instruction, single dataSISD: Single instruction, single data SIMD:Single instruction, multiple dataSIMD:Single instruction, multiple data MISD: ??MISD: ?? MIMDMIMD
MultiprocessoreMultiprocessore UMA: Uniform Memory AccessUMA: Uniform Memory Access COMA: Cache Only Memory AccessCOMA: Cache Only Memory Access NUMA: Not Uniform Memory AccessNUMA: Not Uniform Memory Access
MulticomputerMulticomputer MPP: Message Passing ProcessorMPP: Message Passing Processor COW: Cluster of WorkstationCOW: Cluster of Workstation
UMAUMA
L’accesso alla memoria è uniformeL’accesso alla memoria è uniforme Architettura a BusArchitettura a Bus
Sul Bus sono attestati i processori, le Sul Bus sono attestati i processori, le memorie e gli eventuali bridge (PCI, SCSI …)memorie e gli eventuali bridge (PCI, SCSI …)
Il problema è il mantenimento della Il problema è il mantenimento della coerenza dei dati tra le cachescoerenza dei dati tra le caches Cache write through (pesante per il bus)Cache write through (pesante per il bus) Snooping CacheSnooping Cache Cache write back con protocollo MESICache write back con protocollo MESI
UMAUMA Il bus diventa il collo di bottigliaIl bus diventa il collo di bottiglia Usare uno Split Transaction Bus migliora le Usare uno Split Transaction Bus migliora le
prestazioni ma non troppoprestazioni ma non troppo Esistono anche reti di interconnessione Crossbar Esistono anche reti di interconnessione Crossbar
Switch tra processori e memorie ma devo Switch tra processori e memorie ma devo aggiungere uno snooping bus per la coerenza delle aggiungere uno snooping bus per la coerenza delle cachecache
Importante la disposizione dei dati nelle memorieImportante la disposizione dei dati nelle memorie Queste sono soluzioni estreme che costano moltoQueste sono soluzioni estreme che costano molto
UMAUMA
Potrei usare una rete multistage ma:Potrei usare una rete multistage ma: Costano comunqueCostano comunque Non standardNon standard Ritardo aggiuntivo degli stagesRitardo aggiuntivo degli stages Più bloccanti degli altriPiù bloccanti degli altri Risoluzione confittiRisoluzione confitti Problemi di routingProblemi di routing
UMA: e il S.O.?UMA: e il S.O.?
Varie soluzioni per il kernelVarie soluzioni per il kernel Master/Slave: un processore dedicato al Master/Slave: un processore dedicato al
S.O.,gli altri solo applicazioniS.O.,gli altri solo applicazioni Separate Executive: ogni processore fa girare Separate Executive: ogni processore fa girare
una copia separata del S.O.una copia separata del S.O. Simmetric Multi Processing: il S.O. gira dove Simmetric Multi Processing: il S.O. gira dove
capita => necessari punti di sincronizzazione capita => necessari punti di sincronizzazione nel kernelnel kernel
NUMANUMA
Ogni processore ha la sua memoria e accede Ogni processore ha la sua memoria e accede più velocemente lìpiù velocemente lì
È una soluzione scalabile: posso arrivare fino a È una soluzione scalabile: posso arrivare fino a migliaia di processorimigliaia di processori
Non causano problemiNon causano problemi Bandwidth tra CPU e memoria: si ingrandisce Bandwidth tra CPU e memoria: si ingrandisce
automaticamenteautomaticamente Latency: più o meno costanteLatency: più o meno costante Cost: crescita lineareCost: crescita lineare Phisical: problemi fisici (consumi, raffreddamento…)Phisical: problemi fisici (consumi, raffreddamento…)
NC-NUMANC-NUMA
No Cache NUMANo Cache NUMA Metto in cache solo quello che ho nella Metto in cache solo quello che ho nella
mia memoriamia memoria Cruciale il piazzamento dei dati tra le Cruciale il piazzamento dei dati tra le
memoriememorie
CC-NUMACC-NUMA
Cache coherent NUMACache coherent NUMA Come garantisco la coerenza?Come garantisco la coerenza?
Meccanismi directory basedMeccanismi directory based Directory memory-basedDirectory memory-based
L’elemento di directory, associato a una linea di L’elemento di directory, associato a una linea di memoria ha un array di processori dove è il datomemoria ha un array di processori dove è il dato
Directory cache-basedDirectory cache-based Lista linkata tra i processoriLista linkata tra i processori
COMACOMA
Cache only memory accessCache only memory access Esistono solo cacheEsistono solo cache Non usateNon usate
Problema dell’ultima copiaProblema dell’ultima copia Problemi variProblemi vari
MulticomputerMulticomputer
Caratterizzati dal Message PassingCaratterizzati dal Message Passing Importante la rete di interconnessioneImportante la rete di interconnessione
Rete di interconnessione: Rete di interconnessione: caratteristichecaratteristiche
TopologiaTopologia Diametro: distanza max o media tra due Diametro: distanza max o media tra due
nodinodi Bisection bandwidth: la larghezza di banda Bisection bandwidth: la larghezza di banda
che attraversa ogni bisezione della reteche attraversa ogni bisezione della rete Dimentionality: numero di percorsi Dimentionality: numero di percorsi
alternativi (per la fault tolerance)alternativi (per la fault tolerance)
Rete di interconnessioneRete di interconnessione
Problemi di RoutingProblemi di Routing Store & forward è troppo lentoStore & forward è troppo lento Cut ThroughCut Through
Decido sul routing all’inizio del messaggioDecido sul routing all’inizio del messaggio Se incontro un ostacoloSe incontro un ostacolo
Virtual cut through: il messaggio si ammassa nel Virtual cut through: il messaggio si ammassa nel nodo ostacolonodo ostacolo
Wormhole routing: blocco tutto e il messaggio Wormhole routing: blocco tutto e il messaggio resta spalmato su più nodiresta spalmato su più nodi
RoutingRouting Tipo di decisione di routingTipo di decisione di routing
AritmeticoAritmetico Decisione matematica a partire dall’indirizzo del Decisione matematica a partire dall’indirizzo del
destinatariodestinatario Topologia fissa e sempliceTopologia fissa e semplice No fault toleranceNo fault tolerance
Souce basedSouce based La sorgente precalcola il percorsoLa sorgente precalcola il percorso
Table drivenTable driven Gli algoritmi deterministici usano male la reteGli algoritmi deterministici usano male la rete Problemi di velocitàProblemi di velocità Rischio deadlockRischio deadlock
I/O ad alte prestazioniI/O ad alte prestazioni
Due orientazioni:Due orientazioni: Mass transfer: sequenziali e “prevedibili”Mass transfer: sequenziali e “prevedibili”
Importante il transfer rateImportante il transfer rate
Transaction processingTransaction processing Importante l’access timeImportante l’access time
I/O ad alte prestazioniI/O ad alte prestazioni
Anche i dischi crescono esponenzialmenteAnche i dischi crescono esponenzialmente Nella densità (lineare e per traccia)Nella densità (lineare e per traccia)
Meno nelle prestazioniMeno nelle prestazioni Sia in terminio di seek time che di transfer Sia in terminio di seek time che di transfer
raterate
Problematico perché intervengono Problematico perché intervengono problematiche fisiche (velocità di rotazione problematiche fisiche (velocità di rotazione dei dischi e movimento dei bracci)dei dischi e movimento dei bracci)
I/O ad alte prestazioniI/O ad alte prestazioni
Non blocking I/O (read)Non blocking I/O (read) Read anticipatoRead anticipato Chiamata bloccante dopoChiamata bloccante dopo Serie di chiamate non bloccantiSerie di chiamate non bloccanti Call back signal (interrupt software)Call back signal (interrupt software)
O/S BypassO/S Bypass Comunicazione diretta tra dispositivi e Comunicazione diretta tra dispositivi e
applicazioniapplicazioni Pinning della memoria: divieto di paginazionePinning della memoria: divieto di paginazione
I/O ad alte prestazioniI/O ad alte prestazioni
Parallelismo: più dischiParallelismo: più dischi Striping: suddivido i dati a strisce su più dischiStriping: suddivido i dati a strisce su più dischi
Stripe factor: numero dischiStripe factor: numero dischi Stripe depth: quanto è grande l’unità di suddivisione datiStripe depth: quanto è grande l’unità di suddivisione dati
RAID: RAID: Redundant Array of Independent – Inexpensive Redundant Array of Independent – Inexpensive
DiskDisk Fault tolerance (duplicazione e controlli di errore)Fault tolerance (duplicazione e controlli di errore)
Tecnologia RAIDTecnologia RAID
RAID 0:RAID 0: Separo i dati su più dischiSeparo i dati su più dischi Parallelizzo le lettureParallelizzo le letture Bene per i mass transferBene per i mass transfer Bene per i transazionaliBene per i transazionali
Tecnologia RAIDTecnologia RAID
RAID 1RAID 1 MirroringMirroring Raid 0 duplicatoRaid 0 duplicato Fault tolerance perché ho duplicazioneFault tolerance perché ho duplicazione Non miglioro le prestazioni in letturaNon miglioro le prestazioni in lettura
Tecnologia RAIDTecnologia RAID
RAID 2RAID 2 Su alcuni dischi metto la codifica di HammingSu alcuni dischi metto la codifica di Hamming Poco usataPoco usata Costa e richiede sincronizzazione bit a bitCosta e richiede sincronizzazione bit a bit Bene solo per i mass transferBene solo per i mass transfer Coda delle transazioni poco parallelizzabiliCoda delle transazioni poco parallelizzabili
Tecnologia RAIDTecnologia RAID
RAID 3RAID 3 Come level 2 ma con la parità e non bit a bitCome level 2 ma con la parità e non bit a bit L’hamming code crea gli svantaggi come in L’hamming code crea gli svantaggi come in
RAID 2RAID 2
Tecnologia RAIDTecnologia RAID RAID 4RAID 4
Parità blocco a blocco su un discoParità blocco a blocco su un disco Bene per il transfer rateBene per il transfer rate Operazioni durante la modifica:Operazioni durante la modifica:
Leggere old dataLeggere old data Leggere old parityLeggere old parity Old data (XOR) old parity per avere la parità degli altri dischiOld data (XOR) old parity per avere la parità degli altri dischi Trovare la nuova paritàTrovare la nuova parità Store dataStore data Store parityStore parity
Male per le transazioni: gli aggiornamenti delle parità sono Male per le transazioni: gli aggiornamenti delle parità sono serializzatiserializzati
Mai usatiMai usati
Tecnologia RAIDTecnologia RAID
RAID 5RAID 5 Come RAID 4 ma i blocchi di parità sono distribuiti Come RAID 4 ma i blocchi di parità sono distribuiti
sui dichisui dichi
Tecnologia RAIDTecnologia RAID
RAID 6 o RAID DPRAID 6 o RAID DP Doppio meccanismo di ridondanza con bit su Doppio meccanismo di ridondanza con bit su
dischi distintidischi distinti Schema bidimensionaleSchema bidimensionale
Tecnologia RAIDTecnologia RAID
RAID 1-0RAID 1-0 Doppia virtualizzazione Doppia virtualizzazione È un array RAID 0 di dischi virtuali, ogni disco È un array RAID 0 di dischi virtuali, ogni disco
è un RAID 1è un RAID 1 RAID 0-3RAID 0-3
È un array RAID 0 di dischi virtuali e ogni È un array RAID 0 di dischi virtuali e ogni disco è un RAID 3disco è un RAID 3
SCSISCSI
Il problema si sposta sull’I/O interconnectIl problema si sposta sull’I/O interconnect Small Computer System InterfaceSmall Computer System Interface
Protocollo di comunicazione verso periferiche Protocollo di comunicazione verso periferiche generichegeneriche
Bus o catena SCSI con indirizzamento Bus o catena SCSI con indirizzamento (settato a mano)(settato a mano)
Transazioni I/O di tipo Split TransactionTransazioni I/O di tipo Split Transaction
Esempi realiEsempi reali
HIPPIHIPPI SUPER HIPPISUPER HIPPI HPN: High performance NetworkHPN: High performance Network SAN: System Area NetworkSAN: System Area Network Fast Ethernet-Gigabit EthernetFast Ethernet-Gigabit Ethernet MyrinetMyrinet Fibre ChannelFibre Channel NASD: Network Attached Storage DeviceNASD: Network Attached Storage Device
ConstellationConstellation
Nome “esotico” per un CC-NUMANome “esotico” per un CC-NUMA Cluster di pochi nodi con molti processori Cluster di pochi nodi con molti processori
per nodoper nodo
COWCOW
Cluster Of WorkstationCluster Of Workstation Un insieme di calcolatori indipendenti e di Un insieme di calcolatori indipendenti e di
tipo COTS che cooperano per ottenere tipo COTS che cooperano per ottenere alte prestazioni su un grosso problema (o alte prestazioni su un grosso problema (o un grosso insieme di problemi)un grosso insieme di problemi)
Indipendenti perché funzionano anche Indipendenti perché funzionano anche fuori dal Clusterfuori dal Cluster
COTS: componenti “di serie”COTS: componenti “di serie”
ClusterCluster
Obiettivi:Obiettivi: Fault ToleranceFault Tolerance Scalabilità di costoScalabilità di costo Scalabilità di prestazioniScalabilità di prestazioni Orientati al supercalcoloOrientati al supercalcolo Orientati al superlavoro transazionaleOrientati al superlavoro transazionale
CaratterizzazioneCaratterizzazione
Ruolo dei server aggiuntivi: attivo o passivoRuolo dei server aggiuntivi: attivo o passivo Connessione ai dischi: interni ai nodi o nodo Connessione ai dischi: interni ai nodi o nodo storagestorage Condivisione datiCondivisione dati: shared nothing o shared data: shared nothing o shared data Accesso ai dati: Read Only o Read & WriteAccesso ai dati: Read Only o Read & Write Visione amministrativa: single image o configurazioni Visione amministrativa: single image o configurazioni
separateseparate Visione al programmatore: programmazione tradizionale Visione al programmatore: programmazione tradizionale
o message passingo message passing Visione esterna: Fuori (alle altre macchine) vedo la Visione esterna: Fuori (alle altre macchine) vedo la
molteplicità?molteplicità? Disposizione geografica: Locale o sparpagliata?Disposizione geografica: Locale o sparpagliata?
EsempiEsempi
A mano!A mano! Download da Tucows o Download.comDownload da Tucows o Download.com Seti@home o cracking codiciSeti@home o cracking codici
HTTP redirectHTTP redirect Rotating DNSRotating DNS Prodotti di load balancingProdotti di load balancing