Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle...
-
Upload
paolina-negro -
Category
Documents
-
view
219 -
download
1
Transcript of Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo 255 5 Valutazione delle...
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
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
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, ...
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)
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
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
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)
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
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
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
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
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)
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
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.
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
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
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
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
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
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
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
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
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
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)
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
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
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=
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