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
LOOP:
Esempio
LOAD RA, Ri, Ra
LOAD RB, Ri, Rb
ADD Ra, Rb, Ra
for (i = 0; i < N; i++)
STORE RC, Ri, Ra
C[i] = A[i] + B[i]
INCR Ri
IF< Ri, RN, LOOP
CPU “tradizionale” (accessi in memoria a domanda-risposta)
Cache “perfetta” (prefetching);
tc = 2t (caso ottimistico, come se tutta la cache fosse realizzata con
il metodo diretto)
Tc = N (22t + 9tc) = 43Nt
T = Tc/6N ~ 7t
P = 1/T = 1/(7t)
Es: t = 0,5 nsec ; P ~ 286 MIPS
“Domanda-risposta” è inefficiente
…
LOAD RB, Ri, Rb
ADD Ra, Rb, Ra
MMU-C
istr
dato
istr
…
P
LOAD RB, Ri, Rb
accesso a cache
ciclo di clock “utile”
ciclo di clock “sprecato”
ADD Ra, Rb, Ra
Obiettivo: eliminare (minimizzare) i
cicli di clock sprecati (P, MMU-C),
facendo lavorare le unità della CPU
“a pieno regime”
Parallelismo nell’elaborazione
Casi tratti dalla vita di tutti i giorni
Oggetti di input
Oggetti di output
Funzione
F
Elaborazione sequenziale
Come eseguirla in parallelo?
T = TF
Tc = m TF
Parallelismo nell’elaborazione
Casi tratti dalla vita di tutti i giorni: “tutti uguali, un po’ per uno”
Oggetti di input
F
Oggetti di output
F
...
F
F
T = TF / n
Elaborazione parallela : “farm”
Replicazione in n copie
Tc ~ m TF / n
es: n = 4
Parallelismo nell’elaborazione
Casi tratti dalla vita di tutti i giorni : “catena di montaggio”
Oggetti di input
F1
Oggetti di output
F2
F3
F4
Elaborazione parallela : “pipeline”
Decomposizione in n stadi
F = F4(F3(F2F1(…)))
T = TF / n
Tc ~ m TF / n
es: n = 4
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
1
LOAD RA, Ri, Ra
2
1. Cache
Istruzioni LOAD LOAD ADD
3
4
LOAD=RB,
Rb1/2t
P = 1/T
1/tRi,c =
ADD Ra, Rb, Ra
…
2. Unità
Istruzioni
Es : t = 0,5 nsec
……
P = 1 GIPS
Le stesse MMU+Cache
sono realizzate in pipeline.
3. Cache
Dati
Si può ottenere:
4. Unità
Esecutiva
P  1/t = fclock
T
Tc  m T,
per m (num. istr. eseguite)
>> num. stadi pipeline
Ora il Risc ha senso: la riduzione di T prevale sull’aumento di m
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/t !!!
Es: Pid  4 – 16 GISP, con t = 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
CPU
CPU
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 !
L2 cache
L1 cache
P
P
P
L1 cache
P
P
P
P
P
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
•
Configurazioni da 10 a 1000 nodi
•
S.O. Linux, Mac, Windows, Solaris
•
Performance da decine di GIPS fino
ai 1000 GIPS ed oltre
2100
2100
2100
2100
•
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
5
1-6
3-4
2
Back-end Server
Internet
Dispatcher
Stato delle
transazioni in corso
Web Farm
Esempio di Caching sullo stato delle transazioni
Piattaforme abilitanti ad alte prestazioni




Cluster omogenei, in generale con nodi multiprocessor (SMP)
Cluster eterogenei
Virtual Private Networks (VPN), su scala LAN, MAN, WAN
Grid
Dom. amm.
Dominio amministrativo
2100
2100
2100
2100
2100
2100
2100
2100
2100
2100
2100
2100
2100
2100
2100
2100
2100
2100
2100
2100
2100
2100
2100
2100
Dom. amm.
Linux / Pentium
Power PC / MacOS
2100
2100
2100
2100
2100
2100
2100
2100
2100
SUN / Solaris
Middleware
Aree che confluiscono nel Grid Computing
Valore aggiunto: Quality of Service (QoS)
Distributed/Web
Computing: Objects /
Component Software
Technology
Cooperation and
Virtual Organizations,
Pervasive Computing
High-performance
Computing, Cluster
Computing
Knowledge
Management and
Data Intensive
Computing
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
GRID.IT - Coordinamento Nazionale
TRENTO
Ente proponente: CNR
Coordinatore scientifico: M. Vanneschi
MILANO
TORINO
PADOVA
TRIESTE
BOLOGNA
GENOVA
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
BARI
PISA
PERUGIA
ROMA
NAPOLI
MATERA
Larga partecipazione di Università
LECCE
COSENZA
• 8.1 M€ finanziamento,
PALERMO
CATANIA
Nov. 2002 – Nov. 2005
Costo di Grid.it : 11.1 M€
• > 60% per contratti a giovani
ricercatori
+ altre sinergie CNR, INFN,
CNIT, ASI
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
Department of Computer Science, University of Pisa
ASSIST
A Programming Environment for High-performance Portable
Applications on Clusters, Large-scale Platforms, and Grids
Projects:
Implementations:
•
ASI-PQE2000
•
CNR Agenzia 2000
• Heterogeneous Cluster/Beowulf (on top of
ACE)
•
MIUR-CNR Strategic
Programme L449/97, 1999 and
2000
• CORBA interoperability
•
MIUR-FIRB Grid.it
•
SAIB – Atos Origin
• On-going: High-performance Componentbased Grid-aware ASSIST
• First Grid version for Grid – AssistConf
(on top of Globus)
ASSIST Group
Gruppo “Piattaforme Abilitanti ad Alte Prestazioni”
Dipartimento di Informatica, Università di Pisa
Professori: M. Danelutto, M. Vanneschi
Ricercatori: M. Aldinucci, M. Coppola
Studenti di Dottorato: C. Bertolli, S. Campa, L. Scarponi, C. Zoccolo
Contrattisti/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. Vitale
Segretaria del gruppo: Simona Moi