Università degli Studi di Cassino e del Lazio Meridionale

Documenti analoghi
Corso di. Anno Accademico 2006/2007 Francesco Tortorella

Università degli Studi di Cassino

Università degli Studi di Cassino

Università degli Studi di Cassino e del Lazio Meridionale

Valutazione delle prestazioni

Valutazione delle prestazioni. Valutazione delle prestazioni. Tempo di risposta e throughput. Prestazioni e tempo di esecuzione

Misura delle prestazioni

Architetture dei Calcolatori (Lettere

Valutazione delle Prestazioni Barbara Masucci

Calcolatori Elettronici

Prestazioni 1. Prestazioni 2. Prestazioni 3

Valutazione delle prestazioni dei. Calcolatori Elettronici. Calcolatori Elettronici

Calcolatori Elettronici A a.a. 2008/2009

Valutazione delle Prestazioni

Valutazione delle Prestazioni

Controllo a ciclo singolo

Valutazione delle prestazioni

Valutazione delle prestazioni

Esempio: aggiungere j

La Valutazione delle Prestazioni

Valutazione delle prestazioni

ESERCITAZIONE SULLA VALUTAZIONE DELLE PRESTAZIONI (5 giugno 2006) Esercizio 1 (Tratto dai lucidi sulla Valutazione delle prestazioni)

Valutazione delle prestazioni

Valutazione delle prestazioni dei Calcolatori Elettronici

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

1.4a: Hardware (Processore) Bibliografia. L unità centrale di elaborazione (CPU)

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino

Blocchi di più parole

Modulo 1: Le I.C.T. UD 1.4c: Il Processore

UD 1.4c: Il Processore IL MICROPROCESSORE

Misura delle prestazioni

Cicli di clock e istruzioni

Valutazione delle prestazioni di calcolo

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

PRESTAZIONI. senza e con memoria cache

Sia per la II prova intercorso che per le prove di esame è necessaria la PRENOTAZIONE

Un quadro della situazione. Cosa abbiamo fatto. Lezione 30 Valutazione delle Prestazioni. Dove stiamo andando.. Perché:

Il Processore. Informatica di Base -- R.Gaeta 27

Classi di Computer. Personal Computer. Server. Supercomputer. Computer Dedicati (Embedded)

Architettura hardware

Corso di Architettura degli Elaboratori

Valutazione delle prestazioni di calcolo

Valutazione delle Prestazioni

Corso di Calcolatori Elettronici. Introduzione. Luigi Palopoli e Luca Abeni

L architettura del calcolatore (Seconda parte)

Caching Andrea Gasparetto

Capitolo 4 Parte 1 Le infrastrutture hardware. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

Architettura del calcolatore (Seconda parte)

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

Prestazioni & Co: CPU, Memoria, I/O

Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Introduzione. Caratteristiche generali. Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Corso di Informatica

Valutazione delle prestazioni Salvatore Orlando

Architettura dei calcolatori e sistemi operativi. Architettura MIPS e set istruzioni Capitolo 2 P&H

Architettura del Calcolatore

Modulo 1: Le I.C.T. UD 1.4i: Prestazioni di un Computer

Misura delle prestazioni

ESERCIZI e DOMANDE: I/O

Cache associativa. Possibili alternative per il trasferimento di un blocco dalla memoria inferiore alla memoria superiore:

Influenza dell' I/O sulle prestazioni (globali) di un sistema

Università degli Studi di Cassino e del Lazio Meridionale

Architettura dei computer

Come si definisce il concetto di performance? Tempo di esecuzione di un programma. numero di task/transazioni eseguiti per unità di tempo

Architettura hardware

Università degli Studi di Cassino e del Lazio Meridionale

ARCHITETTURE DEI CALCOLATORI (canale A-I) - Prima prova in itinere del 16/6/2003 Compito tipo A

Calcolatori Elettronici A a.a. 2008/2009

Esempio: aggiungere j

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori

Principi operativi dei computer. Capitolo 7 Fluency Conoscere e usare l informatica

Valutazione delle prestazioni

Architettura. Argomenti. Modello di Von Neumann. Corso di Laurea in Ingegneria Biomedica aa 2003/2004. Ing. Antonio Coronato. Modello di Von Neumann

Problemi del ciclo singolo

Valutazione delle prestazioni

Università degli Studi di Cassino e del Lazio Meridionale

LEZIONE 3. Hardware & Software. Prof. Valle Prof. Folgieri. Lez3 Hardware e Software 1

Depositi bancari ALGORITMI E MACCHINA DI VON NEUMANN COMPUTER = CALCOLATORE NON CERVELLO ELETTRONICO. CERVELLO: Capacità decisionali

Ogni elaboratore esegue delle operazioni sulle informazioni combinandole e trasformandole. Per processare le informazioni vengono eseguite delle

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Porte logiche di base. Cenni circuiti, reti combinatorie, reti sequenziali

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Architettura di un elaboratore

Pipeline nel Mondo Reale

Dischi: Esercizio 1. Ora t.elab = n.cicli impiegati / Frequenza = / ( ) = 20ms

Lez. 4 L hardware. Prof. Pasquale De Michele Gruppo 2

Architettura dei calcolatori

Sistema Operativo. (hardware e software) della della macchina

1. Che cos è un sistema multiprogrammato? Si può realizzare la multiprogrammazione

Calcolatori Elettronici

Architettura degli elaboratori

prestazioni CPU M. Arrigoni Neri & P. Borghese Ingegneria Dalmine Impianti Informatici CPU - 1

Transcript:

di Cassino e del Lazio Meridionale Corso di Misura delle prestazioni Anno Accademico Francesco Tortorella

Misura delle prestazioni E fondamentale definire una metrica corretta per misurare le prestazioni di un sistema di elaborazione. Prospettiva dell acquirente dato un insieme di macchine, quale ha le migliori prestazioni? il minor costo? Il miglior rapporto prestazioni/costo? Prospettiva del progettista di fronte a possibili soluzioni progettuali alternative, quale presenta il miglior incremento delle prestazioni? il minor costo? il miglior rapporto prestazioni/costo?

Come si misurano le prestazioni? Quali sono le grandezze tipicamente usate? frequenza di clock dimensione della RAM dimensione dei dischi Qual è il parametro che ci interessa realmente?

Due concetti di prestazioni Quale aereo ha le migliori prestazioni? Prospettiva del passeggero Tempo impiegato per un singolo viaggio Prospettiva della compagnia aerea Numero di passeggeri trasferiti in un dato intervallo di tempo

Due misure possibili Tempo di risposta (o di esecuzione) Quanto tempo devo aspettare per l uscita del mio programma? Quanto tempo per lanciare il mio programma? Quanto tempo per eseguire il mio programma? Throughput Quanto lavoro viene svolto? Quanti programmi possono essere eseguiti insieme? Qual è il rate di esecuzione medio?

Prestazione = f(tempo di esecuzione) Per un dato programma eseguito sulla macchina X, Prestazione(X) = 1 / tempo di esecuzione(x) X è n volte più veloce di Y se: Prestazione(X) / Prestazione(Y) = n

Che tempo fa? Tempo di risposta Tempo di esecuzione di CPU (tempo di CPU) Tempo di attesa per l I/O, per eseguire altri programmi, ecc. Tempo di esecuzione del programma (tempo di CPU di utente) Tempo di esecuzione di chiamate a S.O. (tempo di CPU di sistema) Parametro di riferimento: tempo di CPU di utente (user CPU time)

Metriche per misurare le prestazioni Livello sistemista Risposte/mese Programmi Operazioni/secondo Linguaggi di Programmazione Compilatori Livello utente Livello progettista CPU user time (Milioni) di Istruzioni / Secondo MIPS (Milioni) di operazioni F.P./ secondo MFLOP/s ISA Datapath Controllo? Megabytes /secondo Unità Funzionali Transistors Collegamenti Cicli/secondo (clock rate) Diverse metriche per diversi aspetti (e per diversi abusi) Come si relazionano le diverse metriche?

Clock Nel valutare le prestazioni di un sistema di calcolo, è necessario tenere presente che la CPU è sincronizzata da un orologio interno (clock), segnale periodico definito da una propria frequenza f=1/t I clock ticks definiscono gli istanti possibili per la realizzazione di eventi in hardware (evoluzione dello stato della macchina) : tempo tempo di ciclo= intervallo tra due ticks = secondi per ciclo clock rate (frequenza) = cicli al secondo (1 Hz. = 1 ciclo/sec) 1 Un clock da 1 Ghz ha un tempo di ciclo di 109 1nanosecondo

Da che cosa dipendono le prestazioni? E possibile esprimere il tempo di esecuzione in termini di cicli di clock secondi cicli secondi = programma programma ciclo A parità di altre condizioni, si ottiene un aumento delle prestazioni se diminuisce il numero di cicli/programma, oppure diminuisce il tempo di ciclo del clock o, equivalentemente, aumenta il clock rate. Bisogna però tenere conto che, nelle architetture reali, i diversi parametri possono essere correlati

Esempio Un programma viene eseguito in 10 secondi sul computer A, che ha un clock da 4 Ghz. E però necessario che venga eseguito in 6 secondi e per questo motivo si intende costruire una nuova macchina B con una nuova tecnologia di realizzazione della CPU che permette un incremento notevole della frequenza di clock, ma a spese del numero di cicli per istruzione che porterebbe ad un aumento del 20% del numero di cicli richiesti per l esecuzione del programma. Quale frequenza di clock deve assicurare la macchina B? Equazione fondamentale: secondi = cicli secondi programma programma ciclo

Quanti cicli per eseguire un programma?... 6a istruzione 5a istruzione 4a istruzione 3a istruzione 2a istruzione 1a istruzione Si può assumere numero di cicli = numero di istruzioni? tempo No! Istruzioni differenti comportano tempi diversi su macchine differenti. Perché?

Istruzioni differenti richiedono numeri differenti di cicli 5a istr. 4a istr. 3a istr. 2a istr. 1a istr. Un operazione di moltiplicazione richiede un tempo maggiore rispetto ad un addizione tempo Un operazione tra floating point richiede un tempo maggiore rispetto ad una tra interi Un accesso in memoria richiede un tempo maggiore rispetto ad un accesso a registri interni

Dove sono le istruzioni? secondi = cicli secondi programma programma ciclo Nell equazione considerata non c è riferimento (esplicito) al numero di istruzioni che formano il programma; chiaramente, questo è un parametro che influisce sul tempo di esecuzione. Come si può esplicitare il rapporto con il numero di istruzioni? Definiamo il numero medio di cicli per istruzione: CPI (clock cycles per instruction). Numero di cicli di clock del programma CPI= Numero di istruzioni del programma

Dove sono le istruzioni? In questo modo diventa chiaro la dipendenza del tempo di esecuzione dal numero di istruzioni: secondi secondi =numero istruzioni CPI programma ciclo Quali sono gli aspetti che influenzano i parametri evidenziati?

Come si dividono le responsabilità? Numero istruzioni CPI Clock rate Algoritmo x Compilatore x x ISA x x x x x Organizzazione Tecnologia x

Istruzioni e CPI Le istruzioni che contribuiscono a formare il parametro CPI sono di diverso tipo e caratterizzate da differenti numeri di cicli per l esecuzione. E quindi possibile raggruppare le diverse istruzioni in classi caratterizzate dallo stesso numero di cicli di clock, rendendo esplicito il contributo di ciascuna classe al valore di CPI n cicli totali= CPI i ni i=1 CPIi = CPI per le istruzioni della classe i-ma ni = numero di istruzioni della classe i-ma

Istruzioni e CPI Alla fine il CPI è n CPIi n i CPI= i=1 N n ni n = CPIi = CPI i f i N i=1 i=1 fi=frequenza della classe i-ma N= numero totale istruzioni In quale direzione andare per migliorare il CPI?

Esempio Una macchina è caratterizzata dalla seguente distribuzione di CPI su tre classi: Classe CPI A 1 B 2 C 3 Una particolare istruzione in HLL può essere tradotta da un compilatore tramite due sequenze possibili, che usano combinazioni diverse di istruzioni delle tre classi, secondo la tabella seguente: A B C S1 2 1 2 S2 4 1 1 Qual è la soluzione migliore?

La legge di Amdahl Il miglioramento di prestazione (accelerazione o speedup) ottenibile mediante l uso di alcune modalità di esecuzione più veloci è limitato dalla frazione di tempo in cui queste modalità possono essere impiegate. Supponiamo di aver apportato una modifica E ad una certa macchina. Lo speedup che si ottiene si valuta come: Prestazione(dopo di E ) Tempo (prima di E ) Speedup( E )= = Prestazione( prima di E ) Tempo (dopo di E )

La legge di Amdahl Supponiamo che la modifica E porti ad un accelerazione pari ad un fattore S di una frazione F dell intero task, mentre il resto rimane inalterato: ExTime(dopo di E) = ((1-F) + F/S) ExTime(prima di E) Per cui lo speedup è 1 Speedup( E ) = ( 1 F ) +F/S

La legge di Amdahl Tempo speso per istruzione Che cosa succede se si rende il Multiply infinitamente veloce lasciando inalterate le altre istruzioni? Speedup = 100% / 44% = 2.3 Lezione? Necessario migliorare in modo bilanciato

Ed i consumi? L incremento delle prestazioni ha richiesto un aumento della potenza assorbita dal processore Ovviamente questo ha portato a problemi di dissipazione notevoli che hanno influito sugli sviluppi delle architetture

Potenza vs. Frequenza di clock

La barriera della potenza La potenza assorbita è proporzionale a C V 2 f dove: C: carico capacitivo V: tensione di alimentazione f: frequenza di commutazione Nel passato si è riusciti ad abbassare la tensione di alimentazione (da 5V a 1V in 20 anni) Attualmente l assorbimento di potenza è una barriera insormontabile

Soluzioni? Non è possibile aumentare la frequenza Si aumenta il numero di elementi di elaborazione (cores): Aumenta il throughput Necessità di adottare un paradigma di programmazione parallelo

Attenti ad Amdahl

Programmi per valutare le prestazioni Quale programma usare per valutare le prestazioni? L ideale sarebbe di usare l insieme di programmi che si sa di dover eseguire sulla macchina (workload), ma non è sempre possibile. In alternativa, si potrebbero usare dei programmi campione (benchmark). Difficoltà: le caratteristiche del benchmark devono essere simili a quelle del workload il benchmark deve essere standard Soluzioni: benchmark sintetici (Whetstone, Dhrystone, kernel benchmark) mix di applicazioni reali (SPEC System Performance Evaluation Cooperative)

SPEC CPU2006 Benchmark Descriptions An ounce of honest data is worth a pound of marketing hype

I numeri di SPEC Con riferimento a SPECint2006, come viene valutata la misura? I benchmark vengono eseguiti sul sistema in esame (SUT: system under test) e si misura il tempo per ognuno di essi; I tempi vengono normalizzati rispetto ad un sistema elaborativo di riferimento (Sun Ultra Enterprise 2, con processore UltraSPARC II a 296 MHz); Si calcola la media geometrica dei 12 valori normalizzati, ottenendo così l indice per il SUT Sono possibili due misure: Base metrics Peak metrics

SPEC sull Intel Core I7, mod. 920