Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle...

28
Valutazione delle prestaz ioni Architettura degli elabor atori 1 - A. Memo 1 5 Valutazione delle 5 Valutazione delle prestazioni prestazioni 5 Generalità 5.1 Prestazioni della CPU 5.2 Prestazioni del sistema 5.3 Considerazioni finali

Transcript of Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle...

Page 1: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

1

5 Valutazione delle prestazioni5 Valutazione delle prestazioni

5 Generalità

5.1 Prestazioni della CPU

5.2 Prestazioni del sistema

5.3 Considerazioni finali

Page 2: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

2

5. Generalità5. Generalità

La misura delle prestazioni permette il confronto di architetture o sistemi diversi

generalmente le prestazioni sono collegate alla velocità di esecuzione

possono essere classificate in base:– alle durate temporali delle singole istruzioni– alla durata temporale di interi programmi o

sezioni significative

Page 3: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

3

5.1 Prestazioni della CPU 5.1 Prestazioni della CPU classificazioneclassificazione

è utile distinguere tra prestazioni della CPU

– legate ai tempi di esecuzione della CPU, quindi user CPU time ed eventualmente anche system CPU time

prestazioni del sistema– legate al tempo di esecuzione totale, e quindi al-

l’I/O, ai dispositivi di memoria, all’architettura, ...

Page 4: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

4

5.1 Prestazioni della CPU5.1 Prestazioni della CPUdefinizione parametri 1definizione parametri 1

Confrontiamo le caratteristiche di due mezzi di tras-porto in un generico tratto autostradale da 100 Km:

Velocitàmedia

numerotrasportati

pedaggio ecarburante

automobile 120 Km/h 5 L. 30.000autobus 80 Km/h 80 L. 55.000

– Chi è il mezzo più veloce per l’utente? (tempo di trasferimento)

– Chi è il mezzo più veloce per il gestore dei trasfe-rimenti ? (numero utenti trasferiti nell’unità di tempo)

Page 5: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

5

5.1 Prestazioni della CPU 5.1 Prestazioni della CPU definizione parametri 2definizione parametri 2

Occorre distinguere due parametri: tempo di esecuzione (detto anche response

time o elapsed time), intervallo di tempo necessario ad eseguire una data attività

banda passante (detto anche bandwidth o throughput), numero di attività eseguite in un dato intervallo di tempo

Page 6: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

6

5.1 Prestazioni della CPU 5.1 Prestazioni della CPU tempo di esecuzione 1tempo di esecuzione 1

le prestazioni di un sistema in base al tempo di esecuzione si possono misurare con

1 tempo_esecuzione_X

prestazioni_X =

due sistemi hanno prestazioni diverse se il tempo di esecuzione della stessa attività è diverso

Page 7: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

7

5.1 Prestazioni della CPU 5.1 Prestazioni della CPU tempo di esecuzione 2tempo di esecuzione 2

in un sistema il tempo di esecuzione può dipendere anche da fattori esterni, quali la presenza o meno di processi concorrenti

in generale il tempo di esecuzione CPU (CPU time), o tempo dedicato dalla CPU per svolgere quell’attività, è composto da– tempo CPU dedicato all’utente (user CPU time)– tempo CPU dedicato al sistema (system CPU time)

Page 8: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

8

5.1 Prestazioni della CPU 5.1 Prestazioni della CPU tempo di esecuzione 3tempo di esecuzione 3

provare ad esempio in ambiente LINUX il comando per calcolare il tempo di sistema e quello totale di un dato comando:

time ls -lxxx u yyy s z:zz pp%

xxx = user CPU timeyyy = system CPU timez:zz = elapsed time (tempo totale di esecuzione)

= xxx + yyy + non_CPU_time

Page 9: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

9

5.1 Prestazioni della CPU 5.1 Prestazioni della CPU tempo di esecuzione 4tempo di esecuzione 4

il tempo CPU di esecuzione, o CPU time, è dato da

CPU_time = (numero cicli di clock CPU) * (durata di un ciclo)

numero cicli di clock CPU frequenza di clock

=

esempio: se una CPU ha una frequenza di clock di 200 MHz e richiede 100 cicli di clock per eseguire un dato comando, il tempo CPU di esecuzione vale:

CPU_time = 100 / (200 x 106) = 0,5 S

Page 10: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

10

5.1 Prestazioni della CPU 5.1 Prestazioni della CPU CPI 1CPI 1

Clock cycles per instruction, numero medio di cicli di clock necessari per eseguire un’istruzione; per il calcolo si può

– partire da un insieme di istruzioni

– partire dal tempo totale di esecuzione di un dato insieme di istruzioni

CPI = i Ci x Fi

CPI = CPU_Time x frequenza_clocknumero_istruzioni_eseguite

con Ci = numero cicli istruzione i-esima Fi = frequenza istruzione i-esima

Page 11: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

11

5.1 Prestazioni della CPU 5.1 Prestazioni della CPU CPI 2CPI 2

istruzioni frequenza # cicliMOV 25 % 1 0,25PUSH/POP 10 % 4 0,40ALU reg/reg 20 % 1 0,20ALU reg/mem 10 % 2 0,20ALU mem/reg 5 % 3 0,15JMP 25 % 3 0,75MUL/DIV 5 % 13 0,65_

CPI = 2,60

Page 12: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

12

5.1 Prestazioni della CPU 5.1 Prestazioni della CPU MIPS 1MIPS 1

MIPS, Million Instructions Per Second

MIPS nativo = numero di istruzioni tempo di esecuzione x 106

= frequenza di clock CPI x 106

MIPS di picco, quando le istruzioni sono scelte per minimizzare il CPI (poco realistico)

MIPS relativo, quando fa riferimento ad una macchina standard (difficile da mantenere aggiornato)

Page 13: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

13

5.1 Prestazioni della CPU 5.1 Prestazioni della CPU caratteristiche del MIPS 1caratteristiche del MIPS 1

facile da capire e da calcolare teoricamente e da valutare praticamente

inadatto nel confronto con CPU aventi set di istruzioni diverse (penalizza le CISC)

strettamente dipendente dal mix di istruzioni prese in esame

Page 14: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

14

5.1 Prestazioni della CPU 5.1 Prestazioni della CPU caratteristiche del MIPS 2caratteristiche del MIPS 2

Supponiamo di avere due sistemi, M1 ed M2, con il medesimo set di istruzioni, ma con architetture e fre-quenze di clock diverse, rispettivamente 200 e 300 MHz

Classe frequenzadi impiego

cicli diclock in M1

cicli diclock in M2

A 50% 1 2B 30% 2 2C 15% 3 4D 5% 4 4

Dividiamo le istruzioni in classi omoge-nee per fre-quenza di uti-lizzo e di du-rata in cicli.

Page 15: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

15

5.1 Prestazioni della CPU 5.1 Prestazioni della CPU caratteristiche del MIPS 3caratteristiche del MIPS 3

calcolo del MIPS nativo su tutte le istruzioni:MIPS native = freq_clock / CPI x 106

CPI globale = i Ci x Fi

CPI M1 = 1x0,5 + 2x0,3 + 3x0,15 + 4x0,05 = 1,75MIPS nativo M1 = 200 x 106 / 1,75 x 106 = 114

CPI M2 = 2x0,5 + 2x0,3 + 4x0,15 + 4x0,05= 2,40MIPS nativo M2 = 300 x 106 / 2,40 x 106 = 125

Page 16: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

16

5.1 Prestazioni della CPU 5.1 Prestazioni della CPU caratteristiche del MIPS 4caratteristiche del MIPS 4

calcolo del tempo di esecuzione di 106 istruzioni:

CPU time M1 = 1,75 x 106 / 200 x 106 = 8,7 mSCPU time M2 = 2,40 x 106 / 300 x 106 = 8,0 mS

CPU time =numero_istruzioni x CPI_globale

frequenza_di_clock

Page 17: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

17

5.1 Prestazioni della CPU 5.1 Prestazioni della CPU caratteristiche del MIPS 5caratteristiche del MIPS 5

calcolo del MIPS di picco:MIPS peak = freq_clock / CPI_minimo

= 200 x 106 / 1 = 200 MIPS peak per M1= 300 x 106 / 2 = 150 MIPS peak per M2

calcolo del MIPS nativo con istruzioni di classe A e C:MIPS nativo M1 = 200 x 106 / (0,5x1 + 0,5x3) x 106 = 100MIPS nativo M2 = 300 x 106 / (0,5x2 + 0,5x4) x 106 = 100

Page 18: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

18

5.1 Prestazioni della CPU 5.1 Prestazioni della CPU MFLOPSMFLOPS

MFLOPS, Million FLoating-point Operations Per Second, ha le stesse caratteristiche del MIPS, ma valuta solo le prestazioni dell’unità FP

è influenzato dal mix di istruzioni usate (non tutte le istruzioni FP sono implementate in tutte le CPU)

MFLOPS normalizzato, in cui viene adottata una ripartizione percentuale prefissata delle varie operazioni FP

Page 19: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

19

5.2 Prestazioni del sistema5.2 Prestazioni del sistemageneralitàgeneralità

Spesso non interessa sapere le prestazioni della CPU, quanto quelle dell’intero sistema

purtroppo queste dipendono da– l’algoritmo e le strutture dati adottate– il compilatore utilizzato– il tipo di CPU in uso ed il set di istruzioni– l’ambiente operativo– le prestazioni della memoria e dell’I/O

Page 20: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

20

5.2 Prestazioni del sistema5.2 Prestazioni del sistemabenchmark 1benchmark 1

un benchmark è un programma (o insieme di programmi) atto a valutare le prestazioni del sistema in cui viene fatto eseguire

usato in macchina diverse permette di confrontarle

usato nella stessa macchina, permette di valutare gli effetti di modifiche hardware o le prestazioni di compilatori diversi

Page 21: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

21

5.2 Prestazioni del sistema5.2 Prestazioni del sistemabenchmark 2benchmark 2

I benchmark si possono dividere in limitati (toy benchmark), in cui il numero contenuto

di linee di programma permette un’analisi molto sommaria del sistema

sintetici (synthetic benchmark), basati su una distribuzione di istruzioni che riproducono la distribuzione tipica dei programmi commerciali

significativi (kernel benchmark), composti da parti significative di programmi commerciali

reali (real benchmark), basati sull’esecuzione standard di più programmi commerciali

Page 22: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

22

5.2 Prestazioni del sistema5.2 Prestazioni del sistemabenchmark 3benchmark 3

I più noti sono: Whetstone, adatto per valutazioni FP Dhrystone, adatto a valutare integer e FP, è

troppo corto e può risiedere gran parte in cache

Linpack, adatto per valutare FP SPEC

Page 23: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

23

5.2 Prestazioni del sistema5.2 Prestazioni del sistemabenchmark 4benchmark 4

offrono un sistema di valutazione globale abbastanza veloce e facilmente trasportabile in varie piattaforme

i limitati ed i sintetici non riproducono situazioni operative reali

non si valuta la capacità elaborativa del sistema, ma l’accoppiata sistema-software specifico, e non è detto che con nuovo software le prestazioni siano analoghe

Page 24: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

24

5.2 Prestazioni del sistema5.2 Prestazioni del sistemaSPEC 1SPEC 1

Standard Performance Evaluation Corporation, creato da un gruppo di venditori per creare un prodotto di valutazione standard

viene aggiornato ogni 3 anni circa, attualmente SPEC95, composto da 8 moduli integer e 10 FP

è un insieme di benchmark specifici, di cui viene fatta la media geometrica

fornisce informazioni numeriche inversamente legate al tempo di esecuzione (valori SPEC elevati = migliori prestazioni)

Page 25: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

25

5.2 Prestazioni del sistema5.2 Prestazioni del sistemaSPEC 2SPEC 2

nella determinazione dello SPEC sono ammessi tutti i trucchi per aumentare l eprestazioni (disabilitare tutti gli altri processi, adottare specifici flag per il compilatore, modificare il kernel del S.O.,..)

in tal modo si evitano controlli rigorosi e si ha la sicurezza che il valore ottenuto rappresenta il massimo raggiungile

Page 26: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

26

5.3 Considerazioni finali 5.3 Considerazioni finali prestazioni medieprestazioni medie

Dovendo calcolare la media di più risultati si può adottare: media aritmetica Xa = Ri / N (tempi di esecuzione)

media geometrica Xg = Ri 1/N (tempi normalizzati)

media armonica Xm = N / 1/Ri (throughput)

N

i=1N

i=1N

i=1

Page 27: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

27

5.3 Considerazioni finali 5.3 Considerazioni finali legge di Amdahl 1legge di Amdahl 1

determina lo speed-up (aumento della velocità) conseguente all’aumento di prestazioni di una frazione di sistema

Speed Up = Vecchie_prestazioni Nuove_prestazioni

Vecchie_prestazioni

Incremento_parzialeVecchie_prestazioni (1-) +

Vecchie_prestazioni=

Page 28: Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle prestazioni 5Generalità 5.1Prestazioni della CPU 5.2Prestazioni.

Valutazione delle prestazioni

Architettura degli elaboratori 1 - A. Memo

28

5.3 Considerazioni finali 5.3 Considerazioni finali legge di Amdahl 2legge di Amdahl 2

Se ad esempio raddoppio le prestazioni di un’unità della CPU (ad esempio l’ALU FP), ed il tempo di esecuzione normalmente speso da questa unità è il 10% del tempo totale, lo speed-up vale:

Speed Up =1

(1-0,1) + 0,12

= 1,05