Architetture dei Calcolatori Valutazione delle Prestazioni Tempo di

Valutazione delle Prestazioni
Misura/valutazione di un insieme di
parametri quantitativi
per caratterizzare le prestazioni di un un calcolatore
Architetture dei Calcolatori
❍
(Lettere A-I)
❍
Valutazione delle Prestazioni
Prestazioni ~ Tempo di esecuzione di un insieme di applicazioni
Cosa significa “il calcolatore A ha prestazioni migliori del
calcolatore B”
B”?
Termina lo stesso compito in un tempo minore rispetto al
calcolatore B
Nello stesso periodo di tempo riesce ad eseguire più
più compiti
Ing.
Ing. Francesco Lo Presti
Obiettivo:
Obiettivo: Comprendere i fattori – sia HW che SW - che
determinano le prestazioni di un calcolatore
❍
❍
❍
Quali algoritmo/istruzioni sono usate da un certo programma
Come l’l’hardware implementa il set di istruzioni
Come il sistema di memoriamemoria-I/O opera
Prestazioni
Tempo di risposta e throughput
Prestazioni e Tempo di Esecuzione
La frase “X è più
più veloce di Y”
Y” è usata per indicare che il tempo
Tempo di risposta (o di esecuzione)
❍
1
di risposta (o di esecuzione), per un dato lavoro, è minore in X
che in Y
Intervallo temporale che intercorre tra l’l’inizio ed il
completamento di programma/job
Inclusi tempo di esecuzione del processore, accessi al disco, accessi
accessi
in memoria, attività
attività di I/O, overhead del sistema operativo, …
❍
❍
Esempio: durata dell’
dell’esecuzione di un programma
Metrica di interesse per l’l’utente
PrestazioneX=1/Tempo di esecuzioneX
Throughput
❍
❍
❍
Ammontare complessivo di lavoro svolto in un dato intervallo
temporale
Esempio: numero di programmi eseguiti nell’
nell’unità
unità di tempo
Metrica di interesse per l’l’amministratore del sistema
Miglioramento delle prestazioni
❍
Prestazioni
2
Diminuzione del tempo di esecuzione
Prestazioni
3
Ciclo di clock
Tempo di risposta e di CPU
Durata del periodo di un’
un’oscillazione completa del
Tempo di risposta: rappresenta la latenza per il
segnale di sincronizzazione
completamento di un programma ed include accessi
al disco, accessi alla memoria, attività
attività di I/O, …
Tempo di CPU: rappresenta il tempo speso dalla
CPU per eseguire il programma dato: non include il
tempo di attesa per I/O o per l’l’esecuzione di altri
programmi
Tempo di CPU = tempo di CPU di utente + tempo di
CPU di sistema
❍
❍
❍
tempo di CPU
❍
❍
Durata del ciclo di clock = tempo tra due impulsi
consecutivi
Secondi per ciclo
Frequenza di clock = cicli di clock per secondo
❍ 1 Hz = sec-1
Esempio: un calcolatore con frequenza di clock pari
a 4 GHz possiede un ciclo di clock di durata
Tempo di CPU di utente:
utente: tempo speso dalla CPU per
eseguire le linee di codice che sono nel programma
Tempo di CPU di sistema: tempo speso dal sistema
operativo per eseguire i compiti richiesti dal programma
Prestazioni
Spesso sostituisce i secondi come unità
unità di misura del
(4 * 109)-1 = 0.25 * 10-9 = 0.25 nanosecondi
4
Tempo di CPU
Prestazioni
5
Durata di Diverse Istruzioni
Per un dato programma
In genere, istruzioni di tipo diverso richiedono quantità
quantità
diverse di tempo. Esempi:
❍
Tempo di CPU= Cicli di Clock della CPU per il programma * Ciclo di Clock
❍
oppure
Tempo di CPU=
Cicli di Clock della CPU per il programma
Fissata la durata del ciclo di clock, varia il numero di cicli di
di
clock richiesti dalle diverse istruzioni
Frequenza di Clock
Si può calcolare il numero medio di cicli di clock per
istruzione di un dato programma (o frammento di
programma)
Per migliorare le prestazioni, a parità
parità di tutto il
resto, occorre:
❍
❍
La moltiplicazione richiede più
più tempo dell’
dell’addizione
L’accesso alla memoria richiede più
più tempo dell’
dell’accesso ai
registri
Ridurre il numero di cicli richiesti da un programma
Ridurre la durata del ciclo di clock
Aumentare la frequenza del clock
Prestazioni
6
Prestazioni
7
Cicli di Clock per Istruzione (CPI)
Numero Totale di Cicli di Clock
Per un dato programma
CPI =
n
Cicli di Clock della CPU per il programma=Σ (CPIi*Ii)
Cicli di Clock della CPU per il programma
i=1
Numero Istruzioni
n tipi di istruzioni diverse
❍
Riscriviamo il Tempo di CPU
ALU, lw,
lw, sw,
sw, jump,
jump, branch,
branch, etc…
etc…
Ii = numero di volte che l’
l’istruzione di tipo i viene eseguita
nel programma
CPIi = numero di cicli di clock per l’
l’istruzione di tipo i
Tempo di CPU= Numero Istruzioni * CPI * Ciclo di Clock
Possiamo quindi utilizzare questa formula per esprimere il
tempo di CPU:
Numero Istruzioni * CPI
Tempo di CPU =
Frequenza di Clock
i=1
Prestazioni
8
Formula per CPI
Prestazioni
Si consideri un calcolatore in
n
Σ(
n
i=1
=
Numero Istruzioni
CPIi *
i=1
grado di eseguire le istruzioni
indicate in tabella
Calcolare CPI e tempo di CPU per
eseguire un programma composto
da 100 istruzioni, supponendo che
la frequenza di clock sia 500 MHz
)
Ii
Numero Istruzioni
Ogni singolo CPIi viene moltiplicato per la frazione delle
occorrenze nel programma - fi=Ii/Numero Istruzioni - delle
istruzioni di tipo i
Tempo di CPU= Numero Istruzioni * CPI * Ciclo di Clock
n
CPI =
9
Esempio
Σ (CPIi*Ii)
CPI =
n
Tempo di CPU=Ciclo di Clock * Σ (CPIi*Ii)
Σ
i=1
n
CPI =
( CPIi * fi )
Σ
i=1
( CPIi * fi )
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
10
Prestazioni
11
Fattori che influiscono sulle prestazioni
Algoritmo
❍
Influisce sul numero di istruzioni (CI)
❍
Influisce su CPI
Numero di istruzioni nel programma sorgente
Uso di istruzioni più
più veloci o più
più lente
Linguaggio di programmazione
❍
❍
Influisce sul numero di istruzioni (CI)
Influisce su CPI
Caratteristiche del linguaggio (es
(es:: astrazione dei dati)
Compilatore
❍
Influisce sul numero di istruzioni (CI) e su CPI
Insieme di istruzioni dell’
dell’architettura
❍
Influisce sul numero di istruzioni (CI), su CPI e sulla frequenza
frequenza
del ciclo di clock
Prestazioni
12