1 Introduzione Sistema di calcolo + applicazioni Possibilità di effettuare confronti e stime dei tempi di esecuzione Metriche di misura delle prestazioni
2 Il tempo è la migliore misura delle prestazioni di un computer tempo di risposta: ritardo per completare un lavoro includendo accessi a disco, lettura memoria, attività di ingresso/uscita (I/O), … tempo di CPU: è il tempo osservato per l’esecuzione di un programma, epurato del tempo per attesa di I/O e quello legato alla presenza di altri programmi Il tempo è denaro Tempo di CPU = numero di cicli di Clock della CPU per eseguire un programma * durata di un ciclo di clock= numero di cicli di Clock della CPU per eseguire un programma/frequenza di clock
3 CPI – cicli di clock per istruzione CPI=cicli di clock della CPU per eseguire un programma numero di istruzioni del programma Tempo di CPU = numero istruzioni * CPI * periodo di clock = = numero di istruzioni * CPI frequenza di clock
4 CPI - nuova espressione CPI ì : numero medio di cicli di clock per istruzione i- esima (per es. Somma) numero di istruzioni di tipo i numero totale di istruzioni eseguite freq i =
5 Esempio FrequenzaCicli di clock per istruzione ALU43%1 Load21%2 Store12%2 Branch24%2 CPI = 0.43*1+0.21*2+0.12*2+0.24*2= 1.57 Media dei cicli di clock per istruzione=( )/4=1.75
6 MIPS – Milioni di Istruzioni per Secondo Tempo di esecuzione = numero di istruzioni MIPS * 10 6 MIPS = numero di istruzioni tempo di esecuzione * 10 6
7 MIPS: problemi MIPS = numero di istruzioni= tempo di esecuzione * 10 6 CPI * 10 6 frequenza di clock Dipende dall’insieme delle istruzioni: è difficile confrontare CPU di differenti produttori Varia a seconda del programma analizzato Può variare in modo inversamente proporzionale alle prestazioni!
8 MIPS relativo MIPS relativo = Tempo CPU riferimento * MIPS CPU riferimento Tempo CPU da valutare Negli anni ’80 la macchina di riferimento era il VAX11/780 della Digital, che era pertanto detto la macchina da 1 MIPS Piccoli vantaggi rispetto al MIPS Per avere informazioni significative bisogna sonoscere tempi di esecuzione, il programma e i dati di ingresso Con il passare degli anni i compilatori e i sistemi operativi non vengono più aggiornati per la macchina di riferimento
9 MFLOPS – milioni di operazioni in virgola mobile al secondo MFLOPS = numero di operazioni in virgola mobile in un programma tempo di esecuzione * 10 6 Sono basate su operazioni e non istruzioni Consentono di confrontare in modo più coerente anche macchine diverse I MFLOPS servono per misurare le prestazioni relative alle sole operazioni in virgola mobile
10 MFLOPS Normalizzati Le operazioni in virgola mobile hanno complessità realizzative e velocità di esecuzione molto differenti Normalizzazione: associazione di un peso alle operazioni in virgola mobile che ne rappresenti la difficoltà Operazioni realinormalizzazione ADD, SUB, COMPARE, MULT1 DIVIDE, SQRT,..4 EXP, SIN,...8 Ad esempio, un frammento di codice contenente un’operazione ADD e una DIVIDE e una SIN viene accreditata come 13 operazioni normalizzate in virgola mobile
11 Esempio di Approfondimento Un programma viene eseguito in 10s dal calcolatore A, che ha un clock di 400 MHz. Un progettista vuole realizzare una macchina B che esegue lo stesso programma in 6 s, modificando la frequenza di clock Tali modifiche richiederanno che la macchina B impieghi un numero di cicli 1.2 volte superiore a quello della macchina A A quale frequenza di clock deve puntare il progettista?
12 Soluzione tempo di CPU A = cicli di clock CPU A / freq. clock A 10 s = cicli di clock CPU A / Da cui tempo tempo di CPU A = cicli Similmente tempo di CPU B = 1.2 cicli di clock CPU A / freq. clock B 6 s = 1.2 * 4000 cicli / freq. clock B Da cui freq. clock B = 800 MHz
13 Riepilogo Per valutare le prestazioni di un calcolatore è importante riferisi al tempo di esecuzione dei programmi, che dipende fortemente dalla CPU Sono state proposte diverse misure, CPI, MIPS, MFLOPS,..., in modo da facilitare sia il confronto fra macchine, sia la predizione dei tempi di esecuzione di un programma Come si è visto l’assortimento delle istruzioni nei vari programmi e le modalità di esecuzione dei rilievi può influenzare fortemente i risultati cui si perviene
14 Test di autovalutazione - 1 É possibile che, in rari casi, una macchina più veloce nell’eseuguire un programma abbia un valore di MIPS più basso? a)Vero b)Falso
15 Test di autovalutazione - 2 –I MIPS e i CPI sono essenzialmente misure equivalenti. La loro principale differenza risiede nella facilità con la quale possono venire impiegate per confrontare differenti macchine
16 Test di autovalutazione - 3 Diversamente dai MIPS, i MFLOPS non sono una misura coertente di confronto fra diverse macchine e ciò accade poichè il numero di operazioni in virgola mobile per lo stesso programma varia fortemente fra i diversi calcolatori