33
Il Il Supercalcol Supercalcol o o Architetture dei sistemi di Architetture dei sistemi di calcolatori calcolatori

Il Supercalcolo Architetture dei sistemi di calcolatori

Embed Size (px)

Citation preview

Page 1: Il Supercalcolo Architetture dei sistemi di calcolatori

Il SupercalcoloIl Supercalcolo

Architetture dei sistemi di calcolatoriArchitetture dei sistemi di calcolatori

Page 2: Il Supercalcolo Architetture 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

Page 3: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 4: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 5: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 6: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 7: Il Supercalcolo Architetture dei sistemi di calcolatori

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…)

Page 8: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 9: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 10: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 11: Il Supercalcolo Architetture dei sistemi di calcolatori

MulticomputerMulticomputer

Caratterizzati dal Message PassingCaratterizzati dal Message Passing Importante la rete di interconnessioneImportante la rete di interconnessione

Page 12: Il Supercalcolo Architetture dei sistemi di calcolatori

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)

Page 13: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 14: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 15: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 16: Il Supercalcolo Architetture dei sistemi di calcolatori

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)

Page 17: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 18: Il Supercalcolo Architetture dei sistemi di calcolatori

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)

Page 19: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 20: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 21: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 22: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 23: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 24: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 25: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 26: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 27: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 28: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 29: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 30: Il Supercalcolo Architetture dei sistemi di calcolatori

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”

Page 31: Il Supercalcolo Architetture dei sistemi di calcolatori

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

Page 32: Il Supercalcolo Architetture dei sistemi di calcolatori

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?

Page 33: Il Supercalcolo Architetture dei sistemi di calcolatori

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