18
Calcolatori Calcolatori Elettronici Elettronici Valutazione delle Valutazione delle Prestazioni Prestazioni Francesco Lo Presti Francesco Lo Presti Rielaborate da Salvatore Tucci Rielaborate da Salvatore Tucci

Calcolatori Elettronici Valutazione delle Prestazioni

Embed Size (px)

DESCRIPTION

Calcolatori Elettronici Valutazione delle Prestazioni. Francesco Lo Presti Rielaborate da Salvatore Tucci. Valutazione delle Prestazioni. Misura/valutazione di un insieme di parametri quantitativi per caratterizzare le prestazioni di un un calcolatore - PowerPoint PPT Presentation

Citation preview

Page 1: Calcolatori Elettronici Valutazione delle Prestazioni

Calcolatori ElettroniciCalcolatori Elettronici

Valutazione delle Valutazione delle PrestazioniPrestazioni

Francesco Lo PrestiFrancesco Lo Presti

Rielaborate da Salvatore TucciRielaborate da Salvatore Tucci

Page 2: Calcolatori Elettronici Valutazione delle Prestazioni

Prestazioni 2

Valutazione delle PrestazioniValutazione delle Prestazioni

Misura/valutazione di un insieme di Misura/valutazione di un insieme di parametriparametri quantitativiquantitativi per caratterizzare le prestazioni di un un calcolatoreper caratterizzare le prestazioni di un un calcolatore Prestazioni Prestazioni ~ Tempo di esecuzione di un insieme di ~ Tempo di esecuzione di un insieme di

applicazioniapplicazioni Cosa significa “il calcolatore A ha prestazioni migliori del Cosa significa “il calcolatore A ha prestazioni migliori del

calcolatore B”?calcolatore B”? Termina lo stesso compito in un tempo minore rispetto al Termina lo stesso compito in un tempo minore rispetto al

calcolatore Bcalcolatore B Nello stesso periodo di tempo riesce ad eseguire più compitiNello stesso periodo di tempo riesce ad eseguire più compiti

ObiettivoObiettivo: Comprendere i fattori – sia HW che SW - che : Comprendere i fattori – sia HW che SW - che determinano le prestazioni di un calcolatoredeterminano le prestazioni di un calcolatore Quali algoritmo/istruzioni sono usate da un certo Quali algoritmo/istruzioni sono usate da un certo

programmaprogramma Come l’hardware implementa il set di istruzioniCome l’hardware implementa il set di istruzioni Come il sistema di memoria-I/O operaCome il sistema di memoria-I/O opera

Page 3: Calcolatori Elettronici Valutazione delle Prestazioni

Prestazioni 3

Tempo di risposta e throughputTempo di risposta e throughput

Tempo di risposta (o di esecuzione)Tempo di risposta (o di esecuzione) Intervallo temporale che intercorre tra l’inizio ed il Intervallo temporale che intercorre tra l’inizio ed il

completamento di programma/jobcompletamento di programma/job Inclusi tempo di esecuzione del processore, accessi al disco, Inclusi tempo di esecuzione del processore, accessi al disco,

accessi in memoria, attività di I/O, overhead del sistema accessi in memoria, attività di I/O, overhead del sistema operativo, …operativo, …

Esempio: durata dell’esecuzione di un programmaEsempio: durata dell’esecuzione di un programma Metrica di interesse per l’utenteMetrica di interesse per l’utente

ThroughputThroughput Ammontare complessivo di lavoro svolto in un dato Ammontare complessivo di lavoro svolto in un dato

intervallo temporaleintervallo temporale Esempio: numero di programmi eseguiti nell’unità di tempoEsempio: numero di programmi eseguiti nell’unità di tempo Metrica di interesse per l’amministratore del sistemaMetrica di interesse per l’amministratore del sistema

Page 4: Calcolatori Elettronici Valutazione delle Prestazioni

Prestazioni 4

Prestazioni e Tempo di EsecuzionePrestazioni e Tempo di Esecuzione

La frase “X è più veloce di Y” è usata per indicare che il La frase “X è più veloce di Y” è usata per indicare che il tempo di risposta (o di esecuzione), per un dato lavoro, è tempo di risposta (o di esecuzione), per un dato lavoro, è minore in X che in Yminore in X che in Y

PrestazionePrestazioneXX=1/Tempo di esecuzione=1/Tempo di esecuzioneXX

Miglioramento delle prestazioniMiglioramento delle prestazioni Diminuzione del tempo di esecuzioneDiminuzione del tempo di esecuzione

Page 5: Calcolatori Elettronici Valutazione delle Prestazioni

Prestazioni 5

Tempo di risposta e di CPUTempo di risposta e di CPU

Tempo di rispostaTempo di risposta: rappresenta la latenza per il : rappresenta la latenza per il completamento di un programma ed include completamento di un programma ed include accessi al disco, accessi alla memoria, attività di accessi al disco, accessi alla memoria, attività di I/O, …I/O, …

Tempo di CPUTempo di CPU: rappresenta il tempo speso dalla : rappresenta il tempo speso dalla CPU per eseguire il programma dato: non CPU per eseguire il programma dato: non include il tempo di attesa per I/O o per include il tempo di attesa per I/O o per l’esecuzione di altri programmil’esecuzione di altri programmi

Tempo di CPU = tempo di CPU di utente + Tempo di CPU = tempo di CPU di utente + tempo di CPU di sistematempo di CPU di sistema Tempo di CPU di utenteTempo di CPU di utente: tempo speso dalla CPU per : tempo speso dalla CPU per

eseguire le linee di codice che sono nel programmaeseguire le linee di codice che sono nel programma Tempo di CPU di sistemaTempo di CPU di sistema: tempo speso dal sistema : tempo speso dal sistema

operativo per eseguire i compiti richiesti dal operativo per eseguire i compiti richiesti dal programmaprogramma

Page 6: Calcolatori Elettronici Valutazione delle Prestazioni

Prestazioni 6

Ciclo di clockCiclo di clock

Durata del periodo di un’oscillazione completa Durata del periodo di un’oscillazione completa del segnale di sincronizzazionedel segnale di sincronizzazione Spesso sostituisce i secondi come unità di misura del Spesso sostituisce i secondi come unità di misura del

tempo di CPUtempo di CPU Durata del ciclo di clock = tempo tra due impulsi Durata del ciclo di clock = tempo tra due impulsi

consecutiviconsecutivi Secondi per cicloSecondi per ciclo

Frequenza di clock = cicli di clock per secondoFrequenza di clock = cicli di clock per secondo 1 Hz = sec1 Hz = sec-1-1

Esempio: un calcolatore con frequenza di clock Esempio: un calcolatore con frequenza di clock pari a 4 GHz possiede un ciclo di clock di pari a 4 GHz possiede un ciclo di clock di duratadurata

(4 * 10(4 * 1099))-1-1 = 0.25 * 10 = 0.25 * 10-9-9 = 0.25 nanosecondi = 0.25 nanosecondi

Page 7: Calcolatori Elettronici Valutazione delle Prestazioni

Prestazioni 7

Tempo di CPUTempo di CPU

Per un dato programmaPer un dato programma

oppureoppure

Per migliorare le prestazioni, a parità di tutto il Per migliorare le prestazioni, a parità di tutto il resto, occorre:resto, occorre: Ridurre il numero di cicli richiesti da un programmaRidurre il numero di cicli richiesti da un programma Ridurre la durata del ciclo di clockRidurre la durata del ciclo di clock

Aumentare la frequenza del clockAumentare la frequenza del clock

Tempo di CPU= Cicli di Clock della CPU per il programma * Ciclo di Clock

Tempo di CPU=

Cicli di Clock della CPU per il programma

Frequenza di Clock

Page 8: Calcolatori Elettronici Valutazione delle Prestazioni

Prestazioni 8

Numero Totale di Cicli di ClockNumero Totale di Cicli di Clock

In genere, istruzioni di tipo diverso richiedono quantità In genere, istruzioni di tipo diverso richiedono quantità diverse di tempo. Esempi:diverse di tempo. Esempi: La moltiplicazione richiede più tempo dell’addizioneLa moltiplicazione richiede più tempo dell’addizione L’accesso alla memoria richiede più tempo dell’accesso ai L’accesso alla memoria richiede più tempo dell’accesso ai

registriregistri n tipi di istruzioni diversen tipi di istruzioni diverse

ALU, lw, sw, jump, branch, etc…ALU, lw, sw, jump, branch, etc…

IIii = numero di volte che l’istruzione di tipo i viene = numero di volte che l’istruzione di tipo i viene eseguita nel programmaeseguita nel programma

CPICPIii = numero di cicli di clock per l’istruzione di tipo i = numero di cicli di clock per l’istruzione di tipo i

Possiamo quindi utilizzare questa formula per esprimere Possiamo quindi utilizzare questa formula per esprimere il tempo di CPU:il tempo di CPU:

Cicli di Clock della CPU per il programma=Σ (CPIi*Ii)

i=1

n

Tempo di CPU=Ciclo di Clock * Σ (CPIi*Ii)

i=1

n

Page 9: Calcolatori Elettronici Valutazione delle Prestazioni

Prestazioni 9

Cicli di Clock per Istruzione (CPI)Cicli di Clock per Istruzione (CPI)

CPICPI: : numero medio di cicli di clock per numero medio di cicli di clock per istruzione di un dato programmaistruzione di un dato programma

Ogni singolo CPIOgni singolo CPIii viene moltiplicato per la frazione viene moltiplicato per la frazione delle occorrenze nel programma - fdelle occorrenze nel programma - fii=I=Iii/Numero /Numero Istruzioni - delle istruzioni di tipo i Istruzioni - delle istruzioni di tipo i

Riscriviamo il Tempo di CPURiscriviamo il Tempo di CPU

CPI = ( CPIi * fi )Σn

i=1

Tempo di CPU =

Numero Istruzioni * CPI

Frequenza di Clock

Tempo di CPU= Numero Istruzioni * CPI * Ciclo di Clock

Page 10: Calcolatori Elettronici Valutazione delle Prestazioni

Prestazioni 10

EsempioEsempio

Si consideri un calcolatore in Si consideri un calcolatore in grado di eseguire le istruzioni grado di eseguire le istruzioni indicate in tabellaindicate in tabella

Calcolare CPI e tempo di CPU Calcolare CPI e tempo di CPU per eseguire un programma per eseguire un programma composto da 100 istruzioni, composto da 100 istruzioni, supponendo che la frequenza di supponendo che la frequenza di clock sia 500 MHz clock sia 500 MHz

Tempo di CPU= Numero Istruzioni * CPI * Ciclo di ClockCPI = ( CPIi * fi )Σ

n

i=1

CPI=0.43*1+0.21*4+0.12*4+0.12*2+0.12*2=2.23

Tempo di CPU= 100 * 2.23* 2 (ns) =446 (ns)

Page 11: Calcolatori Elettronici Valutazione delle Prestazioni

Prestazioni 11

Fattori che influiscono sulle prestazioniFattori che influiscono sulle prestazioni

AlgoritmoAlgoritmo Influisce sul numero di istruzioni (CI)Influisce sul numero di istruzioni (CI)

Numero di istruzioni nel programma sorgenteNumero di istruzioni nel programma sorgente Influisce su CPIInfluisce su CPI

Uso di istruzioni più veloci o più lenteUso di istruzioni più veloci o più lente Linguaggio di programmazioneLinguaggio di programmazione

Influisce sul numero di istruzioni (CI)Influisce sul numero di istruzioni (CI) Influisce su CPIInfluisce su CPI

Caratteristiche del linguaggio (es: astrazione dei dati)Caratteristiche del linguaggio (es: astrazione dei dati) CompilatoreCompilatore

Influisce sul numero di istruzioni (CI) e su CPIInfluisce sul numero di istruzioni (CI) e su CPI Insieme di istruzioni dell’architetturaInsieme di istruzioni dell’architettura

Influisce sul numero di istruzioni (CI), su CPI e sulla Influisce sul numero di istruzioni (CI), su CPI e sulla frequenza del ciclo di clockfrequenza del ciclo di clock

Page 12: Calcolatori Elettronici Valutazione delle Prestazioni

Prestazioni 12

Principi quantitativi di progettazione dei Principi quantitativi di progettazione dei calcolatoricalcolatori

Rendere veloce il caso più comuneRendere veloce il caso più comune Si deve favorire il caso più frequente a discapito di quello Si deve favorire il caso più frequente a discapito di quello

più raropiù raro Il caso più frequente è spesso il più semplice e può Il caso più frequente è spesso il più semplice e può

essere reso più veloce del caso infrequenteessere reso più veloce del caso infrequente

Legge di AmdahlLegge di Amdahl Il miglioramento di prestazione che può essere ottenuto Il miglioramento di prestazione che può essere ottenuto

usando alcune modalità di esecuzione più veloci è usando alcune modalità di esecuzione più veloci è limitato dalla frazione di tempo nella quali tali modalità limitato dalla frazione di tempo nella quali tali modalità sono impiegatesono impiegate

La legge di Amdahl permette di calcolare questo La legge di Amdahl permette di calcolare questo guadagno di prestazioneguadagno di prestazione

Page 13: Calcolatori Elettronici Valutazione delle Prestazioni

Prestazioni 13

SpeedupSpeedup

oppureoppure

Lo speedup fornisce informazioni su quanto più velocemente un lavoro verrà eseguito usando il calcolatore con la miglioria rispetto al calcolatore originale

Page 14: Calcolatori Elettronici Valutazione delle Prestazioni

Prestazioni 14

Legge di AmdahlLegge di Amdahl

FrazioneFrazionemiglioratomigliorato ( (1), ovvero la frazione del tempo di 1), ovvero la frazione del tempo di calcolo che può essere modificato per avvantaggiarsi calcolo che può essere modificato per avvantaggiarsi dei miglioramentidei miglioramenti

Esempio: se 20 sec del tempo di esecuzione di un Esempio: se 20 sec del tempo di esecuzione di un programma che dura 60 sec possono essere modificati programma che dura 60 sec possono essere modificati grazie al miglioramento, la frazione è 20/60 grazie al miglioramento, la frazione è 20/60

FrazioneFrazionemiglioratomigliorato = =

Parte Migliorabile

Tempo di Calcolo

Tempo di Calcolo Migliorabile

Tempo di Calcolo MigliorabileTempo di Calcolo

Parte non Migliorabile

Page 15: Calcolatori Elettronici Valutazione delle Prestazioni

Prestazioni 15

Legge di AmdahlLegge di Amdahl

SpeedupSpeedupmiglioratomigliorato ( (1), ovvero il miglioramento ottenuto 1), ovvero il miglioramento ottenuto dal modo di esecuzione più veloce dal modo di esecuzione più veloce

Esempio: se il modo di esecuzione più veloce è 2 sec, Esempio: se il modo di esecuzione più veloce è 2 sec, mentre il modo originale è 5 secondi per la stessa mentre il modo originale è 5 secondi per la stessa porzione di programma, lo speedup è 5/2 porzione di programma, lo speedup è 5/2

Parte Migliorabile

Tempo di Calcolo Migliorabile

Tempo di Calcolo Migliorato

Parte Migliorata

Speedupmigliorato=Tempo di Calcolo Migliorabile

Tempo di Calcolo Migliorato

Page 16: Calcolatori Elettronici Valutazione delle Prestazioni

Prestazioni 16

Legge di AmdahlLegge di Amdahl

Tempo di calcolonuovo=Tempo di calcolo non migliorabile+Tempo di calcolo migliorato

Tempo di calcolonuovo=Tempo di calcolo non migliorabile+

Tempo di calcolonuovo=Tempo di calcolo*(1-Frazionemigliorato)+

Tempo di calcolonuovo=Tempo di calcolo*[(1-Frazionemigliorato)+

Speedupglobale= =

Tempo di calcolo migliorabile

Speedupmigliorato

Tempo di calcolo*Frazionemigliorato

Speedupmigliorato

Frazionemigliorato

Speedupmigliorato

Tempo di calcolo

Tempo di calcolonuovo

1

Frazionemigliorato

Speedupmigliorato

(1-Frazionemigliorato)+

Page 17: Calcolatori Elettronici Valutazione delle Prestazioni

Prestazioni 17

Esempio Esempio

Si consideri un miglioramento di un processore di un Si consideri un miglioramento di un processore di un sistema utilizzato per servizi Web, tale che la nuova CPU sistema utilizzato per servizi Web, tale che la nuova CPU sia 10 volte più veloce di quella originale per le sia 10 volte più veloce di quella originale per le applicazioni Web. Assumendo che la CPU originale è applicazioni Web. Assumendo che la CPU originale è occupata nella computazione per il 40% del tempo ed è occupata nella computazione per il 40% del tempo ed è in attesa dell’I/O per il 60%, quale è lo speedup globale?in attesa dell’I/O per il 60%, quale è lo speedup globale?FrazioneFrazionemiglioratomigliorato = 0.4 = 0.4

SpeedupSpeedupmiglioratomigliorato = 10 = 10

SpeedupSpeedupglobaleglobale = 1/(0.6 + 0.4/10) = 1/0.64 = 1/(0.6 + 0.4/10) = 1/0.64 1.56 1.56

Page 18: Calcolatori Elettronici Valutazione delle Prestazioni

Prestazioni 18

Corollario della legge di AmdahlCorollario della legge di Amdahl

Se un miglioramento è utilizzabile solo per una frazione Se un miglioramento è utilizzabile solo per una frazione del lavoro complessivo, allora non è possibile accelerare del lavoro complessivo, allora non è possibile accelerare il lavoro più del reciproco di uno meno tale frazioneil lavoro più del reciproco di uno meno tale frazione