Architettura degli
Elaboratori
a.a. 2006 - 07
Sviluppi e Tendenze
Cenni a sviluppi
sul livello dei processi
Livello dei processi: complementi
Modelli di cooperazione
Ambiente locale,
scambio di messaggi
Ambiente globale,
variabili condivise
Modelli ai diversi livelli
Processi ad ambiente locale
STE ad
ambiente
globale
Servizi ad ambiente locale
Processi applicativi
Servizi ad ambiente globale
Processi applicativi
X
X
X
Servizio = processo gestore
maschera completamente le
variabili di stato del servizio
(X) ai processi applicativi
Servizio = procedura
variabili di stato del servizio
(X) condivise + meccanismi di
sincronizzazione
Spazi di indirizzamento e condivisione
• Il problema dei puntatori condivisi
– Indirizzi logici distinti
– Indirizzi logici coincidenti
– Indirizzi fisici
• Controlli di protezione assenti o inefficienti
• “Stato sistema” vs “stato utente” !
• (è solo una eventuale ottimizzazione
dello spazio, di importanza minore)
Spazi di indirizzamento e condivisione
• Il problema dei puntatori condivisi
– Soluzione con allocazione dinamica della memoria virtuale
– Metodo a CAPABILITY
• Un processo A passa un oggetto X ad un altro processo B,
passandogli l’entrata di Tab_Ril_A (CAP)
• B decide in quale posizione di Tab_Ril_B copiare CAP: così
facendo, alloca dinamicamente X nella sua Memoria Virtuale
e decide il valore dell’identificatore di pagina logica per X
• Successivamente, B cancellerà tale entrata da Tab_Ril_B:
così facendo, dealloca X dalla sua Memoria Virtuale
– Esempi: tutti i PCB degli altri processi, scrittura diretta in
variabile targa, descrittori di canale passati via
channelname, ecc.
Cenni a sviluppi
sull’architettura di 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,25 nsec ; P ~ 571 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”
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,25 nsec
……
P = 2000 MIPS
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  8 – 32 GISP, con t = 0,25 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
Cenni a sviluppi e tendenze
su architetture parallele
“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
Multiprocessor a memoria condivisa
M
CPU
M
CPU
CPU
CPU
...
CPU
Aumenti di performance (speed-up) di un ordine di grandezza:
P  da decine di GIPS a centinaia/migliaia di GIPS
Degradazione di performance dovuta a conflitti sulla memoria,
sincronizzazioni, ecc.
Multiprocessor su singolo chip (Multicore)
C2 cache
C1 cache
P
P
P
C1 cache
P
P
P
P
P
Multiprocessor a memoria condivisa (2 –
4 – 8 –16 processori)
•
Intel Pentium 4, Ithanium, iAPX
•
IBM CELL
•
SUN Niagara
Tecnologia Multicore
• Quale evoluzione ?
– D’ora in poi il parallelismo sarà la regola, non
l’eccezione
• Qualunque CPU sarà un multiprocessor
– Quale modello di programmazione ?
– Quali strumenti di programmazione ?
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 – 1 Gbit/sec – 10 Gbit/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.
Piattaforme abilitanti ad alte prestazioni




Cluster omogenei, in generale con nodi multiprocessor
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
“Non solo calcolatori”: tecnologia pervasiva
e “ubiqua”, dispositivi mobili
• Dispositivi mobili, PDA
 Miniaturizzazione, embedding
 Wearable Computing
Un esempio di applicazione distribuita HPC:
gestione delle emergenze
Mobile Access
Mobile Access
Data & Knowledge Storage
Mainframe
+ PC-Cluster
In casofunzionalità
di
emergenza
di non disponibilità
delle
Alcune
sonooeffettuate
in locale nelle
unità
base, richiede che
La gestione delleunità
emergenze
mobili.
le stesse unità
mobili
devono
potermedici,
cooperare
lavoratori
mobili
e non
(polizia,
(magari, delegate,
in gran numero)
svolgere
i servizi
Altre
in tempoper
reale
o post-process,
vigilisono
del fuoco, operatori
ambientali,
ecc.)
più (cluster,
critici. macchine
a unità base più potenti
parallele, mainframe):
collaborino
simulazioni
complesse,
classificazione
Ciò
richiede checritiche
il sistemae abbia
una grande del
in situazioni
pericolose,
rischio, azioni proattive, ecc.
capacità dinamica di autoadattamento
avendo accesso ed elaborando
sfruttando le risorse disponibili al meglio per
Utilizzazione di più risorse eterogenee, dislocate su
garantire
la necessaria
in tempo reale
più siti, con
modalità
Qualità
dele Servizio.
dinamica
adattiva
una
grande quantità di
Visualising
sfruttando le risorse disponibili al meglio per
informazioni
e conoscenza
garantire
la necessaria
La capacità
di autoadattamento
deve estendersi
Qualità
del Servizio.
a
qualunque
di risorsa
di calcolo,
allo
scopo ditipo
migliorare
lo
specifico
memorizzazione, conoscenza e comunicazione
processo
di decisione.
prevista e (momentaneamente)
disponibile.
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
•
MIUR-FIRB Grid.it
•
SAIB – Atos Origin
• CORBA interoperability
• Grid version (on top of Globus)
• On-going: High-performance Componentbased Grid-aware ASSIST
Fine
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
Scarica

Appendice B