Upload
adriana-vecchi
View
221
Download
3
Embed Size (px)
Citation preview
Architettura degli Elaboratori
a.a. 2005 - 06(Appendice B)
Introduzione ai
Sistemi ad Alte Prestazioni
“High Performance Computing”: motivi
“Technology Push”: competitività e spinta tecnologica“Technology Pull”: requisiti di applicazioni “computation-intensive” e “data-intensive”
• Controllo ambientale e prevenzione di disastri
• Chimica, biotecnologie, medicina, ed altre scienze
• Controlli real-time
• Finanza, e-business, e-government …
• Data Mining, motori di ricerca, …
Necessità di performance superiori di più ordini di grandezza rispetto al tradizionale
Vediamo prima come si possono aumentare le prestazioni di un singolo processore,
poi daremo un cenno alle architetture parallele e distribuite con più processori
EsempioLOOP: LOAD RA, Ri, Ra
LOAD RB, Ri, Rb
ADD Ra, Rb, Ra
STORE RC, Ri, Ra
INCR Ri
IF< Ri, RN, LOOP
CPU “tradizionale” (accessi in memoria a domanda-risposta)
Cache “perfetta” (prefetching);
tc = (caso ottimistico, come se tutta la cache fosse realizzata con il metodo diretto)
Tc = N (22 + 9tc) = 43N
T = Tc/6N ~ 7
P = 1/T = 1/(7
Es: = 0,5 nsec ; P ~ 286 MIPS
for (i = 0; i < N; i++)
C[i] = A[i] + B[i]
“Domanda-risposta” è inefficiente
P
MMU-C
LOAD RB, Ri, Rb
ADD Ra, Rb, Ra
Obiettivo: eliminare (minimizzare) i cicli di clock sprecati (P, MMU-C), facendo lavorare le unità della CPU “a pieno regime”
istr
istr
…
LOAD RB, Ri, Rb
ADD Ra, Rb, Ra
…
accesso a cache
ciclo di clock “utile”
ciclo di clock “sprecato”
dato
Parallelismo nell’elaborazione
Oggetti di input Oggetti di output
F
Funzione
Casi tratti dalla vita di tutti i giorni
Elaborazione sequenzialeT = TF
Tc = m TFCome eseguirla in parallelo?
Oggetti di output
Parallelismo nell’elaborazione
Oggetti di input
Casi tratti dalla vita di tutti i giorni: “tutti uguali, un po’ per uno”
Elaborazione parallela : “farm”
Replicazione in n copie
T = TF / n
Tc ~ m TF / n
es: n = 4
F
F
F
F
. . .
Parallelismo nell’elaborazione
Oggetti di input Oggetti di output
Casi tratti dalla vita di tutti i giorni : “catena di montaggio”
Elaborazione parallela : “pipeline”Decomposizione in n stadi
F = F4(F3(F2F1(…)))
T = TF / n
Tc ~ m TF / n
es: n = 4
F1
F2
F3
F4
Applicazioni del parallelismo
• Livello dei processi
• Applicazioni
• Sistema Operativo
• Architettura firmware del singolo processore
• CPU pipeline
• CPU superscalare
• Entrambi i livelli: architettura firmware e processi
• Multiprocessor
• Cluster di PC/Workstation
• Sistemi distribuiti e Reti
• Grid Computing
CPU pipeline
Stadi del pipeline = fasi dell’interprete firmware:
1. Chiamata istruzioni
2. Decodifica e preparazione operandi in registri
3. Eventuale lettura di valori in memoria
4. Esecuzione o eventuale scrittura in memoria
1 2 3 4
Cache Istruzioni
(IC)
Unità Istruzioni
(IU)
Cache Dati (DC)
Unità Esecutiva
(EU)
Memoria intelligente: genera un flusso continuo di istruzioni in sequenza
CPU pipeline LOAD RA, Ri, Ra
LOAD RB, Ri, Rb
ADD Ra, Rb, Ra
… …1. Cache Istruzioni
T Tc m T,
per m (num. istr. eseguite) >> num. stadi pipeline
2. Unità Istruzioni
3. Cache Dati
4. Unità Esecutiva
Ora il Risc ha senso: la riduzione di T prevale sull’aumento di m
LOAD LOAD ADD
1 2 3 4
…
P = 1/T = 1/tc = 1/Es : = 0,5 nsec
P = 1 GIPS
Le stesse MMU+Cache sono realizzate in pipeline.
Si può ottenere:
P 1/fclock
CPU pipeline e superscalare
• I valori di P precedenti sono IDEALI
• In realtà, ci sono degradazioni di P dovute a dipendenze sui dati, istruzioni di salto, ecc
• P 60% – 95% rispetto a Pid
• Importanza dei COMPILATORI OTTIMIZZANTI
• Per aumentare ancora P in modo significativo: CPU SUPERSCALARE
• Cache Istruzioni legge più di una istruzione in un solo tempo di accesso (es: da 4 a 16): interleaving e/o parola lunga
• tutte attraversano insieme il pipeline
• P > (>>) 1/ !!! Es: Pid 4 – 16 GISP, con = 0,5 nsec
CPU superscalare: tecnologie in evoluzione• Multi-Threading
• Hyper-Threading
• Very Long Instruction Word (VLIW)
• …
Come
“interallacciare
” l’esecuzione
di “thread”
distinti su uno
stesso
processore
Prestazioni superiori di uno o più ordini di grandezza : processori multipli
• Livello dei processi
• Applicazioni
• Sistema Operativo
• Architettura firmware del singolo processore
• CPU pipeline
• CPU superscalare
• Entrambi i livelli: architettura firmware e processi
• Multiprocessor
• Cluster di PC/Workstation
• Sistemi distribuiti e Reti
• Grid Computing
Multiprocessor a memoria condivisa
M
CPU
M
CPUCPU CPU CPU. . .
Aumenti di performance (speed-up) di un ordine di grandezza:
P qualche GIPS a decine/centinaia di GIPS
Degradazione di performance dovuta a conflitti sulla memoria, sincronizzazioni, ecc.
Multiprocessor su singolo chip !
L1 cache
P P P P
L1 cache
P P P P
L2 cache
Anche su singolo chip (4 – 8 –16 processori)
Es: tecnologia Ithanium
Architettura SMP (Symmetric MultiProcessor)
Sistemi distribuiti ad alte prestazioni
Cluster di PC o di Workstation
2100 2100 2100
2100
21002100 2100 2100
• Configurazioni da 10 a 1000
nodi
• S.O. Linux, Mac, Windows,
Solaris
• Performance da decine di GIPS
fino ai 1000 GIPS ed oltre
• Costo contenuto
• Rapporto P/costo molto favorevole
Rete ad alta banda: 100 Mbit/sec – 1Gbit/sec su scala LAN (Fast Ethernet, Gigabit Ethernet, Myrinet, …)
Entro pochi anni: 100 - 1000 Gbit/sec, anche su scala MAN (ottica)
Reti ad alta banda
Esempio su Pisa:
una MAN con tecnologia fotonica,
banda complessiva: 320 Gbit/sec,
da 1 a 32 canali.
Esempio di “farm”: Web Server ad alte prestazioni
Web-object Cache
21-6 5
Web Farm
Internet
Dispatcher
Back-end Server3-4
Stato delle transazioni in corso
Esempio di Caching sullo stato delle transazioni
Piattaforme abilitanti ad alte prestazioni
Cluster eterogenei Virtual Private Networks (VPN), su scala LAN, MAN, WAN
Grid
2100 2100 2100 2100
2100 2100 2100 2100
Linux / Pentium
2100 2100 2100 2100
2100 2100 2100 2100
Power PC / MacOS
2100
2100 2100 2100 2100
2100 2100 2100 2100
SUN / Solaris
Dominio amministrativo
Dom. amm.
2100 2100 2100 2100
2100 2100 2100 2100
Dom. amm.
Middleware
Cluster omogenei, in generale con nodi multiprocessor (SMP)
Aree che confluiscono nel Grid Computing
Distributed/Web Computing: Objects / Component Software Technology
High-performance Computing, Cluster Computing
Cooperation and Virtual Organizations, Pervasive Computing
Knowledge Management and Data Intensive Computing
Valore aggiunto: Quality of Service (QoS)
Grid Computing
• Condivisione di risorse distribuite
• DATI, CALCOLO, CONOSCENZA
• in nodi di elaborazione e data-server ad alte prestazioni
Visione di una “macchina unica” a livello rete
(“next generation Web”)
Controllo della Qualità del Servizio (QoS):
• utilizzare dinamicamente molte risorse disponibili su Grid, per garantire determinati livelli di
• performance,
• tolleranza ai guasti, ecc
PISA
NAPOLI
COSENZA
PERUGIA
PADOVA
GENOVA
LECCE
MILANO
PALERMO
ROMA
TORINO
MATERA
BARI
BOLOGNA
TRENTO
TRIESTE
CATANIA
GRID.IT - Coordinamento Nazionale
Ente proponente: CNRCoordinatore scientifico: M. Vanneschi
CNR – ISTI, Pisa – D. Laforenza
CNR – ISTM, Perugia – M. Rosi
CNR – ICAR, Napoli – A. Murli
INFN, Padova – M. Mazzucato
CNIT, Pisa – G. Prati
ASI, Matera – G. Milillo
Costo di Grid.it : 11.1 M€
• 8.1 M€ finanziamento,
• > 60% per contratti a giovani ricercatori
+ altre sinergie CNR, INFN, CNIT, ASI
Larga partecipazione di Università
Nov. 2002 – Nov. 2005
Problemi tecnologici e di ricerca nel calcolo ad alte prestazioni• Tecnologia software, strumenti e ambienti di
programmazione ad alto livello
• Sviluppo di applicazioni indipendente dall’architettura parallela o distribuita, come nella programmazione su architetture tradizionali
• Il problema di fondo:
• Interoperabilità e Portabilità da coniugare con la Performance
• Indirizzo didattico nella Laurea Specialistica in Tecnologie Informatiche
Ambiente di programmazione ad alto livello per lo sviluppo di applicazioni ad alte prestazioni
Projects:
• ASI-PQE2000
• CNR Agenzia 2000
• MIUR-CNR Strategic Programme L449/97, 1999 and 2000
• MIUR-FIRB Grid.it
• SAIB – Atos Origin
Implementations:
• Heterogeneous Cluster/Beowulf (on top of ACE)
• CORBA interoperability
• First Grid version for Grid – AssistConf (on top of Globus)
• On-going: High-performance Component-based Grid-aware ASSIST
Department of Computer Science, University of PisaDepartment of Computer Science, University of Pisa
ASSISTASSISTA Programming Environment for High-performance Portable A Programming Environment for High-performance Portable Applications on Clusters, Large-scale Platforms, and GridsApplications on Clusters, Large-scale Platforms, and Grids
Department of Computer Science, University of PisaDepartment of Computer Science, University of Pisa
ASSISTASSISTA Programming Environment for High-performance Portable A Programming Environment for High-performance Portable Applications on Clusters, Large-scale Platforms, and GridsApplications on Clusters, Large-scale Platforms, and Grids
Gruppo “Piattaforme Abilitanti ad Alte Prestazioni”Dipartimento di Informatica, Università di Pisa
ASSIST Group
Professori: M. Danelutto, M. VanneschiRicercatori: M. Aldinucci, M. CoppolaStudenti di Dottorato: C. Bertolli, S. Campa, L. Scarponi, C. ZoccoloContrattisti/assegnisti: P. Ciullo, L. Dazi, G. Giaccherini, S. Magini, A. Paternesi, P. Pesciullesi, A.
Petrocelli, E. Pistoletti, L. Potiti, R. Ravazzolo, M. Torquati, L. Veraldi, G. Virdis, P. VitaleSegretaria del gruppo: Simona Moi