La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Presentazioni simili


Presentazione sul tema: ""— Transcript della presentazione:

255 5 Valutazione delle prestazioni
Architettura degli elaboratori 5 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 Alessandro Memo

256 Architettura degli elaboratori 1 - A. Memo
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

257 5.1 Prestazioni della CPU classificazione
è 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

258 5.1 Prestazioni della CPU definizione parametri 1
Confrontiamo le caratteristiche di due mezzi di tras- porto in un generico tratto autostradale da 100 Km: 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

259 5.1 Prestazioni della CPU definizione 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

260 5.1 Prestazioni della CPU tempo 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

261 5.1 Prestazioni della CPU tempo 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

262 5.1 Prestazioni della CPU tempo 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 -l xxx u yyy s z:zz pp% xxx = user CPU time yyy = system CPU time z:zz = elapsed time (tempo totale di esecuzione) = xxx + yyy + non_CPU_time Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo

263 5.1 Prestazioni della CPU tempo 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 mS Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo

264 5.1 Prestazioni della CPU CPI 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 con Ci = numero cicli istruzione i-esima Fi = frequenza istruzione i-esima CPI = Si Ci x Fi CPU_Time x frequenza_clock numero_istruzioni_eseguite CPI = Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo

265 5.1 Prestazioni della CPU CPI 2
Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo

266 5.1 Prestazioni della CPU MIPS 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

267 5.1 Prestazioni della CPU caratteristiche 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

268 5.1 Prestazioni della CPU caratteristiche 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 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

269 5.1 Prestazioni della CPU caratteristiche del MIPS 3
calcolo del MIPS nativo su tutte le istruzioni: MIPS native = freq_clock / CPI x 106 CPI globale = Si Ci x Fi CPI M1 = 1x0,5 + 2x0,3 + 3x0,15 + 4x0,05 = 1,75 MIPS nativo M1 = 200 x 106 / 1,75 x 106 = 114 CPI M2 = 2x0,5 + 2x0,3 + 4x0,15 + 4x0,05= 2,40 MIPS nativo M2 = 300 x 106 / 2,40 x 106 = 125 Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo

270 5.1 Prestazioni della CPU caratteristiche del MIPS 4
calcolo del tempo di esecuzione di 106 istruzioni: CPU time M1 = 1,75 x 106 / 200 x 106 = 8,7 mS CPU 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

271 5.1 Prestazioni della CPU caratteristiche 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 = 100 MIPS nativo M2 = 300 x 106 / (0,5x2 + 0,5x4) x 106 = 100 Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo

272 5.1 Prestazioni della CPU MFLOPS
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

273 5.2 Prestazioni del sistema 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

274 5.2 Prestazioni del sistema benchmark 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

275 5.2 Prestazioni del sistema benchmark 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

276 5.2 Prestazioni del sistema benchmark 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

277 5.2 Prestazioni del sistema benchmark 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

278 5.2 Prestazioni del sistema SPEC 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

279 5.2 Prestazioni del sistema SPEC 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

280 5.3 Considerazioni finali prestazioni medie
Dovendo calcolare la media di più risultati si può adottare: media aritmetica Xa = S Ri / N (tempi di esecuzione) media geometrica Xg = P Ri 1/N (tempi normalizzati) media armonica Xm = N / S 1/Ri (throughput) N i=1 N i=1 N i=1 Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo

281 5.3 Considerazioni finali legge di Amdahl 1
determina lo speed-up (aumento della velocità) conseguente all’aumento di prestazioni di una frazione di sistema Vecchie_prestazioni Nuove_prestazioni Speed Up = Vecchie_prestazioni = Vecchie_prestazioni Incremento_parziale Vecchie_prestazioni (1-a) + a Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo

282 5.3 Considerazioni finali legge 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: 1 Speed Up = = 1,05 0,1 2 (1-0,1) + Valutazione delle prestazioni Architettura degli elaboratori 1 - A. Memo


Scaricare ppt ""

Presentazioni simili


Annunci Google