Sei sulla pagina 1di 6

Tutorato 12 dicembre 2016

Calcolo delle prestazioni


Nomenclatura
• T: periodo del ciclo di clock. Equivale al tempo di durata di un ciclo del clock, ovvero al
reciproco della frequenza di clock: T = F1
• F: frequenza del ciclo di clock. Equivale al numero di volte che il ciclo di clock si ripete in un
secondo: F = T1
• CP I: (Clock Per Istruzione) numero di cicli di clock impiegati per eseguire una particokare
istruzione
• CP Im,c : numero di cicli medi data una certa macchina m ed un certo compilatore c. Equivale
alla media pesata del CPI di ciascuna istruzione per la distribuzione percentuale delle istruzioni
del compilatore
• IC: numero di istruzioni di un programma
• Exe T ime: (Execution Time) tempo di esecuzione di un particolare programma su una par-
ticolare macchina. Equivale al numero di cicli medi per istruzione CP Im,c per il numero di
istruzioni del programma IC, per il periodo del ciclo
– T = 1
F : Exe T ime = IC ⇤ CP Im,c ⇤ T = IC ⇤ CP Im,c ⇤ 1
F

• P erf : performance. L’idea è che la performance sia tanto più grande quanto migliore sia
la prestazione. Una prestazione migliore corrisponde ad un tempo di esecuzione più piccolo,
viene adottato quindi, come misura della Performance di una macchina, l’inverso del tempo di
escuzione Exe T ime: P erf = Exe 1T ime .
• Speedup(a vs b : Misura di quanto un sistema a è più veloce di un sistema b. Speedup (a vs b) =
P erfa Exe T imeb
P erfb = Exe T imea

1 - Quale macchina comprare e con che compilatore


Si considerino due diverse macchine, M1 ed M2, dello stesso set di istruzioni, partizionato in tre classi
A, B, C:
M1: CPI M2: CPI Utilizzo C1 Utilizzo C2 Utilizzo C3
A 4 2 30% 30% 50%
B 6 4 50% 20% 30%
C 8 3 20% 50% 20%

1
• M1 ha una frequenza di clock pari a 400 MHz
• M2 ha una frequenza di clock pari a 200 Mhz
• C1 è un compilatore sviluppato dai produttori di M1
• C2 è un compilatore sviluppato dai produttori di M2
• C3 è un compilatore sviluppato da un terzo costruttore.

Si supponga che il codice prodotto dai tre compilatori per uno stesso programma preveda un ugual
numero di istruzioni eseguite (IC), ma una diversa distribuzione nelle varie classi come riportato in
tabella.
Domanda 1:
Usando C1 su M1 e M2, di quanto M1 è più veloce di M2?
Risposta:
Bisogna calcolare il tempo di esecuzione di M1 e M2 usando il compilatore C1. Per fare questo
calcoliamo il CPI nei due casi.
CP IM 1 = 4 ⇤ 0, 3 + 6 ⇤ 0, 5 + 8 ⇤ 0, 2 = 1, 2 + 3 + 1, 6 = 5, 8(clock/istruzione)
CP IM 2 = 2 ⇤ 0, 3 + 4 ⇤ 0, 5 + 3 ⇤ 0, 2 = 0, 6 + 2 + 0, 6 = 3, 2(clock/istruzione)
Il tempo di esecuzione quindi è:
IC⇤5,8 400⇤106
Exe T imeM 1 = IC ⇤ CP IM 1 ⇤ 1
FM 1 = 400⇤106 e quindi: P erfM 1 = IC⇤5,8
IC⇤3,2 200⇤106
Exe T imeM 1 = IC ⇤ CP IM 2 ⇤ 1
FM 1 = 200⇤106 e quindi: P erfM 2 = IC⇤3,2
P erfM 1 400⇤106 IC⇤3,2
Speedup (M 1 vs M 2) = P erfM 2 = IC⇤5,8 200⇤106 da cui semplificando ed eseguendo le oper-
azioni:
6,4
Speedup (M 1 vs M 2) = 5,8 = 1, 10
Domanda 2
Usando C2 su M1 e M2 di quanto M2 è più veloce di M1?
Riposta:
Il calcolo è identico a quello precedente, utilizzando la distribuzione delle istruzioni del compi-
latore C2
CP IM 1 = 4 ⇤ 0, 3 + 6 ⇤ 0, 2 + 8 ⇤ 0, 5 = 1, 2 + 1, 2 + 4 = 6, 4(clock/istruzione)
CP IM 2 = 2 ⇤ 0, 3 + 4 ⇤ 0, 2 + 3 ⇤ 0, 5 = 0, 6 + 0, 8 + 1, 5 = 2, 9(clock/istruzione)
P erfM 2 200⇤106 IC⇤6,4
Speedup (M 2 vs M 1) = P erfM 1 = IC⇤2,9 400⇤106 da cui semplificando ed eseguendo le oper-
azioni:
6,4
Speedup (M 2 vs M 1) = 5,8 = 1, 10
Domanda 3
Se si acquista M1, quale dei tre compilatori conviene usare?
Se si acquista M2, quale dei tre compilatori conviene usare?

2
Risposta:
Bisogna calcolare le prestazioni del compilatore C3.
CP IM 1 = 4 ⇤ 0, 5 + 6 ⇤ 0, 3 + 8 ⇤ 0, 2 = 2 + 1, 8 + 1, 6 = 5, 4(clock/istruzione)
CP IM 2 = 2 ⇤ 0, 5 + 4 ⇤ 0, 3 + 3 ⇤ 0, 2 = 1 + 1, 2 + 0, 6 = 2, 8(clock/istruzione)
Tabella delle CPI
C1 C2 C3
M1 5,8 6,4 5,4
M2 3,2 2,9 2,8
Dalla tabella si può vedere che in tutti i casi il compilatore C3 ha una CPI media più bassa
degli altri, quindi è da scegliere sia per la macchina M1 che per la macchina M2.
Domanda 4
Quale macchina è il miglior acquisto, supponendo che tutti gli altri criteri siano identici, com-
preso il prezzo?

Risposta
Bisogna confrontare le prestazioni delle due macchine utilizzando, ovviamente, il compilatore
C3.
Risulta:
IC⇤5,4 400⇤106
Exe T imeM 1 = IC ⇤ CP IM 1 ⇤ 1
FM 1 = 400⇤106 e quindi: P erfM 1 = IC⇤5,4
IC⇤2,8 200⇤106
Exe T imeM 2 = IC ⇤ CP IM 2 ⇤ 1
FM 1 = 200⇤106 e quindi: P erfM 2 = IC⇤2,8
Quindi:
P erfM 1 400⇤106 IC⇤2,8
Speedup (M 1 vs M 2) = P erfM 2 = IC⇤5,4 200⇤106 da cui semplificando ed eseguendo le oper-
azioni:
5,6
Speedup (M 1 vs M 2) = 5,4 = 1, 04
La macchina M1 è più performante della macchina M2, quindi quella da preferire per l’ascquisto.

2 - Confronto fra due macchine


Considerare due macchine M1 (a 300 MHz) ed M2 (a 450 Mhz) con le seguenti caratteristiche (rispetto
a compilatori prefissati):

Macchina Classe Cicli Distribuzione


A 1 40%
B 2 30%
M1
C 3 20%
D 4 10%
A 1 40%
M2
B 2 60%
Sapendo che, per uno stesso programma, in media il codice prodotto per M2 prevede il doppio di
istruzioni rispetto a quello prodotto per M1, stabilire:

3
Domanda 1
Quale macchina è migliore?
Risposta
Il numero di istruzioni della macchina M2 per un programma qualsiasi è mediamente il doppio
delle istruzioni della macchina M1. Quindi:
ICM 2 = 2 · ICM 1
Dobbiamo calcolare il tempo di esecuzione delle due macchine e poi confrontare le preformance
CP IM 1 = 1 · 0, 4 + 2 · 0, 3 + 3 · 0, 2 + 4 · 0, 1 = 2
CP IM 2 = 1 · 0, 4 + 2 · 0, 6 = 1, 6
ICM 1 ⇤2 300⇤106
Exe T imeM 1 = ICM 1 ⇤ CP IM 1 ⇤ 1
FM 1 = 300⇤106 e quindi: P erfM 1 = ICM 1 ⇤2
2⇤ICM 1 ⇤1,6 450⇤106
Exe T imeM 2 = ICM 2 ⇤ CP IM 2 ⇤ 1
FM 1 = 450⇤106 e quindi: P erfM 2 = 2⇤ICM 1 ⇤1,6
P erfM 2 450⇤106
Speedup (M 2 vs M 1) = P erfM 1 = 2⇤ICM 1
2⇤ICM 1 ⇤1,6 300⇤106 da cui semplificando ed eseguendo le
operazioni:
9,6
Speedup (M 1 vs M 2) = 9 = 1, 067
La macchina M1 è migliore.
Domanda 2
Se si usa un nuovo compilatore su M2 che riduce di 1/3 il numero delle operazioni di tipo B,
cosa succede alle prestazioni?
Risposta
Un programma che con M1 ha ICM 1 istruzioni con M2 avrà:
2
ICM 2 = 2 ⇤ ICM 1 ⇤ 0, 4 + 2 ⇤ ICM 1 ⇤ 0, 6 ⇤ 3 = 1, 6 ⇤ ICM 1
La Distribuzione si calola come segue. Dato un programma che col precedente compilatore
aveva ICM istruzioni, col nuovo compilatore avrà:
2
ICM 2 = 0, 4 ⇤ ICM + 0, 6 ⇤ 3 ⇤ ICM = 0, 8 ⇤ ICM
La distribuzione quindi sarà
Classe Cicli Distribuzione
0,4⇤ICM
A 1 0,8⇤ICM ⇤ 100 = 50%
0,4⇤ICM
B 2 0,8⇤ICM ⇤ 100 = 50%
La CPI per M! col nuovo compilatore sarà:
CP IM 1 = 1 ⇤ 0, 5 + 2 ⇤ 0, 5 = 1, 5 quindi
P erfM 2 450⇤106
Speedup (M 2 vs M 1) = P erfM 1 = 2⇤ICM 1
1,6⇤ICM 1 ⇤1,5 300⇤106 da cui semplificando ed eseguendo le
operazioni:
9
Speedup (M 2 vs M 1) = 7,2 = 1, 25
Concludendo la macchina M2 in questo caso è migliore della macchina M1.

4
3 - Lunghezza del codice
Considerare due macchine M1 (a 3 GHz) ed M2 (a 1.5 GHz). La seguente tabella illustra le classi
di istruzioni macchina, i relativi CPI medi e la distribuzione di probabilità delle istruzioni nei pro-
grammi considerati.

Macchina Classe ICP Distribuzione


A 1 40%
B 2 30%
M1
C 3 20%
D 4 10%
A 1 60%
M2
B 2 40%
Domanda:
Supponendo di sapere che il codice prodotto, compilando lo stesso programma per le due
piattaforme, ha identiche prestazioni sia per M1 che per M2, calcolare in che rapporto devono
stare i numeri di istruzioni prodotte per i due programmi (ovvero, ICM1 e ICM2) perché ciò si
verifichi.
Risposta
Dobbiamo calcolare il CPI medio per le due macchine.
CP IM 1 = 1 ⇤ 0, 4 + 2 ⇤ 0, 3 + 3 ⇤ 0, 2 + 4 ⇤ 0, 1 = 2
CP IM 1 = 1 ⇤ 0, 6 + 2 ⇤ 0, 4 = 1, 4
I tempi di esecuzione si esprimono quindi come segue:
CP IM 1 ⇤ICM 1 2⇤ICM 1 9
Exe T imeM 1 = FM 1 = 3⇤109 = 0, 66 ⇤ 10 ⇤ ICM 1
CP IM 2 ⇤ICM 2 1,4⇤ICM 2 9
Exe T imeM 2 = FM 2 = 1,5⇤109 = 0, 93 ⇤ 10 ⇤ ICM 1
Affinchè le prestazioni siano le stesse i tempi di esecuzione dovranno essere uguali per cui
Exe T imeM 1 = Exe T imeM 2 ! 0, 66 ⇤ 10 9
⇤ ICM 1 = 0, 93 ⇤ 10 9
⇤ ICM 2 quindi
0.93
ICM 1 = 0.66 ICM 2 = 1, 41 ⇤ ICM 2
Vale a dire che il compilatore di M1 genera un eseguibile 1,41 volte più lungo dell’equivalente
eseguibile della macchina M2 (41% di istruzioni in più).

4 - CPI medio ideale 1


Un computer a 1 GHz, nell’eseguire un certo programma, ha una prestazione ideale di 500 MIPS.
Domanda:
Calcolare il CPI medio ideale.
Risposta
109
In un secondo il computer esegue 0,5G istruzioni quindi abbiamo: 0, 5 ⇤ 109 = CP I da cui
CP I = 2

5
5 - CPI medio ideale 2
Considerare l’esecuzione di un programma P su di una data CPU.

Domanda 1:
Calcolare il CPI ideale, considerando che il CPI medio delle load/store è 4.5, il CPI medio delle
altre istruzioni è 2, mentre la percentuale di load/store è del 40%.
Rispsta
Riscriviamo questi dati nella seguente tabella:
Classe CPI Distribuzione
load/store 4,5 40%
altre 2 60%
Quindi:
CP IId = 0, 4 ⇤ CP Il/s + 0, 6 ⇤ CP Ialtre = 0, 4 ⇤ 4, 5 + 0, 6 ⇤ 2 = 3
Domanda 2:
Calcolare i tempi ideali pereseguire P considerando che IC = 200 ⇤ 106 , mentre la frequenza
della CPU è di 500 MHz.
Risposta
Il tempo di ciclo (periodo) è
1 6 9
T = 500 ⇤ 10 = 2 ⇤ 10
Il tempo ideale di esecuzione del programma P è quindi:
ExeT ime = CP Iid ⇤ IC ⇤ T = 3 ⇤ 200 ⇤ 106 ⇤ 2 ⇤ 10 9
= 1, 2 sec

Potrebbero piacerti anche