Architetture dei Calcolatori Valutazione delle Prestazioni Tempo di

Transcript

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”?
9 Termina lo stesso compito in un tempo minore rispetto al
calcolatore B
9 Nello stesso periodo di tempo riesce ad eseguire più
più compiti
Prof. 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
9 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
Tempo di risposta: rappresenta la latenza per il
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
‰
‰





‰
‰
‰
5
diverse di tempo. Esempi:


Cicli di Clock della CPU per il programma
La moltiplicazione richiede più
più tempo dell’
dell’addizione
L’accesso alla memoria richiede più
più tempo dell’
dell’accesso ai
registri
‰ 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
Per migliorare le prestazioni, a parità
parità di tutto il
resto, occorre:

Prestazioni
‰ In genere, istruzioni di tipo diverso richiedono quantità
quantità
oppure

Esempio: un calcolatore con frequenza di clock pari
a 4 GHz possiede un ciclo di clock di durata
Durata di Diverse Istruzioni
Per un dato programma
Tempo di CPU=
1 Hz = sec-1
4
Tempo di CPU= Cicli di Clock della CPU per il programma * Ciclo di Clock
‰
Durata del ciclo di clock = tempo tra due impulsi
consecutivi
Secondi per ciclo
(4 * 109)-1 = 0.25 * 10-9 = 0.25 nanosecondi
Tempo di CPU
‰
Spesso sostituisce i secondi come unità
unità di misura del
tempo di CPU
Frequenza di clock = cicli di clock per secondo

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
Durata del periodo di un’
un’oscillazione completa del
segnale di sincronizzazione
istruzione di un dato programma (o frammento di
programma)
Ridurre il numero di cicli richiesti da un programma
Ridurre la durata del ciclo di clock
9 Aumentare la frequenza del clock
Prestazioni
6
Prestazioni
7
Cicli di Clock per Istruzione (CPI)
‰
Per un dato programma
CPI =
‰
Numero Totale di Cicli di Clock
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
Σ (CPIi*Ii)
Σ(
n
i=1
=
Numero Istruzioni
9
CPIi *
i=1
‰ Si consideri un calcolatore in
)
Ii
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
Numero Istruzioni
‰ Ogni singolo CPIi viene moltiplicato per la frazione delle
occorrenze nel programma - fi=Ii/Numero Istruzioni - delle
istruzioni di tipo i
CPI =
Prestazioni
Esempio
n
CPI =
n
Tempo di CPU=Ciclo di Clock * Σ (CPIi*Ii)
n
Σ
i=1
Tempo di CPU= Numero Istruzioni * CPI * Ciclo di Clock
( CPIi * fi )
CPI =
n
Σ
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
Principi quantitativi di progettazione dei
calcolatori
Fattori che influiscono sulle prestazioni
‰ Algoritmo

‰ Rendere veloce il caso più
più comune
Influisce sul numero di istruzioni (CI)

9 Numero di istruzioni nel programma sorgente


Influisce su CPI
9 Uso di istruzioni più
più veloci o più
più lente
‰ Linguaggio di programmazione


‰ Legge di Amdahl
Influisce sul numero di istruzioni (CI)
Influisce su CPI

9 Caratteristiche del linguaggio (es
(es:: astrazione dei dati)
‰ Compilatore

Influisce sul numero di istruzioni (CI) e su CPI

‰ Insieme di istruzioni dell’
dell’architettura

Si deve favorire il caso più
più frequente a discapito di quello più
più raro
Il caso più
più frequente è spesso il più
più semplice e può essere reso più
più
veloce del caso infrequente
Il miglioramento di prestazione che può essere ottenuto usando
alcune modalità
modalità di esecuzione più
più veloci è limitato dalla frazione di
tempo nella quali tali modalità
modalità sono impiegate
La legge di Amdahl permette di calcolare questo guadagno di
prestazione
Influisce sul numero di istruzioni (CI), su CPI e sulla frequenza
frequenza
del ciclo di clock
Prestazioni
12
Speedup
Prestazioni
13
Legge di Amdahl
‰
Frazionemigliorato (≤1), ovvero la frazione del tempo di calcolo
che può essere modificato per avvantaggiarsi dei
miglioramenti
Esempio: se 20 sec del tempo di esecuzione di un programma
che dura 60 sec possono essere modificati grazie al
miglioramento, la frazione è 20/60
oppure
‰
Speedupmigliorato (≥1), ovvero il miglioramento ottenuto dal
modo di esecuzione più
più veloce

• Lo speedup fornisce informazioni su quanto più
velocemente un lavoro verrà eseguito usando il
calcolatore con la miglioria rispetto al calcolatore originale
Prestazioni
14
Esempio: se il modo di esecuzione più
più veloce è 2 sec, mentre il
modo originale è 5 secondi per la stessa porzione di
programma, lo speedup è 5/2
Prestazioni
15
Esempio 2
Esempio 1
‰ Si consideri un miglioramento di un processore di un sistema
‰ Supponiamo di potere aumentare la velocità
velocità della CPU della
utilizzato per servizi Web, tale che la nuova CPU sia 10 volte
più
più veloce di quella originale per le applicazioni Web.
Assumendo che la CPU originale è occupata nella
computazione per il 40% del tempo ed è in attesa dell’
dell’I/O
per il 60%, quale è lo speedup globale?
nostra macchina di un fattore 5 (senza influenzare le prestazioni
prestazioni
di I/O) con un costo 5 volte superiore
‰ Assumiamo inoltre che la CPU sia utilizzata per il 50% del tempo
ed il rimanente sia destinato ad attesa per operazioni di I/O. Se
Se
la CPU è un terzo del costo totale del computer, è un buon
investimento da un punto di vista costo/prestazioni aumentare di
un fattore 5 la velocità
velocità della CPU?
Frazionemigliorato = 0.4
Speedupmigliorato = 10
Speedupglobale = 1/(0.6 + 0.4/10) = 1/0.64 ≈ 1.56
‰ L’incremento di costo è quindi maggiore del miglioramento di
prestazioni: la modifica non migliora il rapporto
costo/prestazioni
Prestazioni
16
Corollario della legge di Amdahl
Prestazioni
17
Osservazioni sulla legge di Amdahl
‰ Se un miglioramento è utilizzabile solo per una frazione del
‰ Per ottenere un miglioramento evidente delle prestazioni,
lavoro complessivo, allora non è possibile accelerare il lavoro
più
più del reciproco di uno meno tale frazione
occorre intervenire sulle componenti della macchina che
influiscono sul tempo di esecuzione di una frazione elevata
dell’
dell’esecuzione


Anche così
così, il miglioramento relativo non sarà
sarà proporzionale a
quello globale
Non ci si può aspettare che il miglioramento di una delle
componenti della macchina produca un aumento delle prestazioni
proporzionale al miglioramento
‰ Esempio

Prestazioni
18
L’esecuzione di un programma richiede 100 sec e le moltiplicazioni
sono responsabili dell’
dell’80% di tale tempo. Quanto si deve migliorare
la velocità
velocità della moltiplicazione perché
perché il programma abbia un
tempo di esecuzione di 20 sec?
100/20 = ( (1(1-0.8) + 0.8/Speedup
0.8/Speedupmigliorato )-1
4/Speedup
4/Speedupmigliorato = 0
Prestazioni
19
L’indice MIPS
Problemi dell’indice MIPS
‰ MIPS = milioni di istruzioni per secondo
‰ Dipende dall’
dall’insieme di istruzioni dell’
dell’architettura

È difficile confrontare architetture con diversi insiemi di istruzioni
istruzioni
‰ Varia, anche sulla stessa macchina, a seconda del programma
considerato

A seconda del sottoinsieme di istruzioni usato più
più frequentemente
‰ Può variare in maniera inversamente proporzionale al tempo di
esecuzione del programma!

‰ Poiché
Poiché MIPS rappresenta la frequenza delle operazioni per

unità
unità temporale, le prestazioni delle macchine più
più veloci che
hanno elevati valori di MIPS possono essere specificate
come l’l’inverso del tempo di esecuzione
‰ Caratteristica positiva



L’indice MIPS è intuitivo da comprendere: le macchine più
più veloci
hanno valori più
più elevati
Prestazioni
20
Esempio: due calcolatori, uno dei quali senza unità
unità per i calcoli in
virgola mobile (FPU)
Le istruzioni in virgola mobile richiedono più
più tempo rispetto alle
istruzioni su interi
Il calcolatore con FPU impiega meno tempo per eseguire un
programma, ma ha un MIPS più
più basso
Il calcolatore senza FPU esegue semplice istruzioni con il risultato
risultato di
avere un MIPS più
più elevato, ma ha un tempo di esecuzione più
più elevato
Prestazioni
21