calcolatori elettronici valutazione delle prestazioni francesco lo presti rielaborate da salvatore...
TRANSCRIPT
Calcolatori ElettroniciCalcolatori Elettronici
Valutazione delle Valutazione delle PrestazioniPrestazioni
Francesco Lo PrestiFrancesco Lo Presti
Rielaborate da Salvatore TucciRielaborate da Salvatore Tucci
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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)+
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
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