Post on 01-May-2015
Architettura degli Elaboratori
a.a. 2006 - 07
Sviluppi e Tendenze
Cenni a sviluppi sul livello dei processi
Livello dei processi: complementiModelli di cooperazione
Ambiente locale, scambio di messaggi
Ambiente globale, variabili condivise
Modelli ai diversi livelli
STE ad ambiente globale
Processi ad ambiente locale
X
Processi applicativi
Servizio = processo gestore
maschera completamente le variabili di stato del servizio
(X) ai processi applicativi
Servizi ad ambiente locale
Processi applicativi
Servizio = procedura
variabili di stato del servizio (X) condivise + meccanismi di
sincronizzazione
X X
Servizi ad ambiente globale
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
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,25 nsec ; P ~ 571 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
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,25 nsec
P = 2000 MIPS
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 8 – 32 GISP, con = 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
CPUCPU 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)
C1 cache
P P P P
C1 cache
P P P P
C2 cache
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
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 – 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 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
“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
Visualising
Mobile Access
Mainframe + PC-Cluster
Data & Knowledge Storage
La gestione delle emergenze richiede che lavoratori mobili e non (polizia, medici, vigili del fuoco, operatori ambientali, ecc.)
collaborino
in situazioni critiche e pericolose,
avendo accesso ed elaborando
in tempo reale
una grande quantità di
informazioni e conoscenza
allo scopo di migliorare lo specifico processo di decisione.
Mobile Access
Alcune funzionalità sono effettuate in locale nelle unità mobili.
Altre sono delegate, in tempo reale o post-process, a unità base più potenti (cluster, macchine parallele, mainframe):
simulazioni complesse, classificazione del rischio, azioni proattive, ecc.
Utilizzazione di più risorse eterogenee, dislocate su più siti, con modalità
dinamica e adattivasfruttando le risorse disponibili al meglio per garantire la necessaria
Qualità del Servizio.
In caso di emergenza o di non disponibilità delle unità base,
le stesse unità mobili devono poter cooperare (magari, in gran numero) per svolgere i servizi
più critici.
Ciò richiede che il sistema abbia una grande
capacità dinamica di autoadattamento
sfruttando le risorse disponibili al meglio per garantire la necessaria
Qualità del Servizio.
La capacità di autoadattamento deve estendersi a qualunque tipo di risorsa di calcolo, memorizzazione, conoscenza e comunicazione 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
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
• Grid version (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
Fine
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