architettura degli elaboratori a.a. 2006 - 07 sviluppi e tendenze

30
Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

Upload: marcella-tosi

Post on 01-May-2015

224 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

Architettura degli Elaboratori

a.a. 2006 - 07

Sviluppi e Tendenze

Page 2: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

Cenni a sviluppi sul livello dei processi

Page 3: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

Livello dei processi: complementiModelli di cooperazione

Ambiente locale, scambio di messaggi

Ambiente globale, variabili condivise

Page 4: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

Modelli ai diversi livelli

STE ad ambiente globale

Processi ad ambiente locale

Page 5: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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

Page 6: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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)

Page 7: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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.

Page 8: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

Cenni a sviluppi sull’architettura di processori

Page 9: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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]

Page 10: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

“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

Page 11: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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

Page 12: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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

Page 13: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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

Page 14: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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

Page 15: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

Cenni a sviluppi e tendenze su architetture parallele

Page 16: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

“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

Page 17: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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.

Page 18: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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

Page 19: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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 ?

Page 20: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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)

Page 21: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

Reti ad alta banda

Esempio su Pisa:

una MAN con tecnologia fotonica,

banda complessiva: 320 Gbit/sec,

da 1 a 32 canali.

Page 22: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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

Page 23: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

“Non solo calcolatori”: tecnologia pervasiva e “ubiqua”, dispositivi mobili

• Dispositivi mobili, PDA

Miniaturizzazione, embedding

Wearable Computing

Page 24: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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.

Page 25: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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

Page 26: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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

Page 27: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

Fine

Page 28: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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?

Page 29: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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

. . .

Page 30: Architettura degli Elaboratori a.a. 2006 - 07 Sviluppi e Tendenze

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