Architetture dei Calcolatori Valutazione delle Prestazioni Tempo di
Transcript
Architetture dei Calcolatori Valutazione delle Prestazioni Tempo di
Valutazione delle Prestazioni Misura/valutazione di un insieme di parametri quantitativi per caratterizzare le prestazioni di un un calcolatore Architetture dei Calcolatori (Lettere A-I) Valutazione delle Prestazioni Prestazioni ~ Tempo di esecuzione di un insieme di applicazioni Cosa significa “il calcolatore A ha prestazioni migliori del calcolatore B” B”? 9 Termina lo stesso compito in un tempo minore rispetto al calcolatore B 9 Nello stesso periodo di tempo riesce ad eseguire più più compiti Prof. Francesco Lo Presti Obiettivo: Obiettivo: Comprendere i fattori – sia HW che SW - che determinano le prestazioni di un calcolatore Quali algoritmo/istruzioni sono usate da un certo programma Come l’l’hardware implementa il set di istruzioni Come il sistema di memoriamemoria-I/O opera Prestazioni Tempo di risposta e throughput Prestazioni e Tempo di Esecuzione La frase “X è più più veloce di Y” Y” è usata per indicare che il tempo Tempo di risposta (o di esecuzione) 1 di risposta (o di esecuzione), per un dato lavoro, è minore in X che in Y Intervallo temporale che intercorre tra l’l’inizio ed il completamento di programma/job 9 Inclusi tempo di esecuzione del processore, accessi al disco, accessi accessi in memoria, attività attività di I/O, overhead del sistema operativo, … Esempio: durata dell’ dell’esecuzione di un programma Metrica di interesse per l’l’utente PrestazioneX=1/Tempo di esecuzioneX Throughput Ammontare complessivo di lavoro svolto in un dato intervallo temporale Esempio: numero di programmi eseguiti nell’ nell’unità unità di tempo Metrica di interesse per l’l’amministratore del sistema Miglioramento delle prestazioni Prestazioni 2 Diminuzione del tempo di esecuzione Prestazioni 3 Ciclo di clock Tempo di risposta e di CPU Tempo di risposta: rappresenta la latenza per il completamento di un programma ed include accessi al disco, accessi alla memoria, attività attività di I/O, … Tempo di CPU: rappresenta il tempo speso dalla CPU per eseguire il programma dato: non include il tempo di attesa per I/O o per l’l’esecuzione di altri programmi Tempo di CPU = tempo di CPU di utente + tempo di CPU di sistema 5 diverse di tempo. Esempi: Cicli di Clock della CPU per il programma La moltiplicazione richiede più più tempo dell’ dell’addizione L’accesso alla memoria richiede più più tempo dell’ dell’accesso ai registri Fissata la durata del ciclo di clock, varia il numero di cicli di di clock richiesti dalle diverse istruzioni Frequenza di Clock Si può calcolare il numero medio di cicli di clock per Per migliorare le prestazioni, a parità parità di tutto il resto, occorre: Prestazioni In genere, istruzioni di tipo diverso richiedono quantità quantità oppure Esempio: un calcolatore con frequenza di clock pari a 4 GHz possiede un ciclo di clock di durata Durata di Diverse Istruzioni Per un dato programma Tempo di CPU= 1 Hz = sec-1 4 Tempo di CPU= Cicli di Clock della CPU per il programma * Ciclo di Clock Durata del ciclo di clock = tempo tra due impulsi consecutivi Secondi per ciclo (4 * 109)-1 = 0.25 * 10-9 = 0.25 nanosecondi Tempo di CPU Spesso sostituisce i secondi come unità unità di misura del tempo di CPU Frequenza di clock = cicli di clock per secondo Tempo di CPU di utente: utente: tempo speso dalla CPU per eseguire le linee di codice che sono nel programma Tempo di CPU di sistema: tempo speso dal sistema operativo per eseguire i compiti richiesti dal programma Prestazioni Durata del periodo di un’ un’oscillazione completa del segnale di sincronizzazione istruzione di un dato programma (o frammento di programma) Ridurre il numero di cicli richiesti da un programma Ridurre la durata del ciclo di clock 9 Aumentare la frequenza del clock Prestazioni 6 Prestazioni 7 Cicli di Clock per Istruzione (CPI) Per un dato programma CPI = Numero Totale di Cicli di Clock n Cicli di Clock della CPU per il programma=Σ (CPIi*Ii) Cicli di Clock della CPU per il programma i=1 Numero Istruzioni n tipi di istruzioni diverse Riscriviamo il Tempo di CPU ALU, lw, lw, sw, sw, jump, jump, branch, branch, etc… etc… Ii = numero di volte che l’ l’istruzione di tipo i viene eseguita nel programma CPIi = numero di cicli di clock per l’ l’istruzione di tipo i Tempo di CPU= Numero Istruzioni * CPI * Ciclo di Clock Possiamo quindi utilizzare questa formula per esprimere il tempo di CPU: Numero Istruzioni * CPI Tempo di CPU = Frequenza di Clock i=1 Prestazioni 8 Formula per CPI Σ (CPIi*Ii) Σ( n i=1 = Numero Istruzioni 9 CPIi * i=1 Si consideri un calcolatore in ) Ii grado di eseguire le istruzioni indicate in tabella Calcolare CPI e tempo di CPU per eseguire un programma composto da 100 istruzioni, supponendo che la frequenza di clock sia 500 MHz Numero Istruzioni Ogni singolo CPIi viene moltiplicato per la frazione delle occorrenze nel programma - fi=Ii/Numero Istruzioni - delle istruzioni di tipo i CPI = Prestazioni Esempio n CPI = n Tempo di CPU=Ciclo di Clock * Σ (CPIi*Ii) n Σ i=1 Tempo di CPU= Numero Istruzioni * CPI * Ciclo di Clock ( CPIi * fi ) CPI = n Σ i=1 ( CPIi * fi ) CPI=0.43*1+0.21*4+0.12*4+0.12*2+0.12*2=2.23 Tempo di CPU= 100 * 2.23* 2 (ns) =446 (ns) Prestazioni 10 Prestazioni 11 Principi quantitativi di progettazione dei calcolatori Fattori che influiscono sulle prestazioni Algoritmo Rendere veloce il caso più più comune Influisce sul numero di istruzioni (CI) 9 Numero di istruzioni nel programma sorgente Influisce su CPI 9 Uso di istruzioni più più veloci o più più lente Linguaggio di programmazione Legge di Amdahl Influisce sul numero di istruzioni (CI) Influisce su CPI 9 Caratteristiche del linguaggio (es (es:: astrazione dei dati) Compilatore Influisce sul numero di istruzioni (CI) e su CPI Insieme di istruzioni dell’ dell’architettura Si deve favorire il caso più più frequente a discapito di quello più più raro Il caso più più frequente è spesso il più più semplice e può essere reso più più veloce del caso infrequente Il miglioramento di prestazione che può essere ottenuto usando alcune modalità modalità di esecuzione più più veloci è limitato dalla frazione di tempo nella quali tali modalità modalità sono impiegate La legge di Amdahl permette di calcolare questo guadagno di prestazione Influisce sul numero di istruzioni (CI), su CPI e sulla frequenza frequenza del ciclo di clock Prestazioni 12 Speedup Prestazioni 13 Legge di Amdahl Frazionemigliorato (≤1), ovvero la frazione del tempo di calcolo che può essere modificato per avvantaggiarsi dei miglioramenti Esempio: se 20 sec del tempo di esecuzione di un programma che dura 60 sec possono essere modificati grazie al miglioramento, la frazione è 20/60 oppure Speedupmigliorato (≥1), ovvero il miglioramento ottenuto dal modo di esecuzione più più veloce • Lo speedup fornisce informazioni su quanto più velocemente un lavoro verrà eseguito usando il calcolatore con la miglioria rispetto al calcolatore originale Prestazioni 14 Esempio: se il modo di esecuzione più più veloce è 2 sec, mentre il modo originale è 5 secondi per la stessa porzione di programma, lo speedup è 5/2 Prestazioni 15 Esempio 2 Esempio 1 Si consideri un miglioramento di un processore di un sistema Supponiamo di potere aumentare la velocità velocità della CPU della utilizzato per servizi Web, tale che la nuova CPU sia 10 volte più più veloce di quella originale per le applicazioni Web. Assumendo che la CPU originale è occupata nella computazione per il 40% del tempo ed è in attesa dell’ dell’I/O per il 60%, quale è lo speedup globale? nostra macchina di un fattore 5 (senza influenzare le prestazioni prestazioni di I/O) con un costo 5 volte superiore Assumiamo inoltre che la CPU sia utilizzata per il 50% del tempo ed il rimanente sia destinato ad attesa per operazioni di I/O. Se Se la CPU è un terzo del costo totale del computer, è un buon investimento da un punto di vista costo/prestazioni aumentare di un fattore 5 la velocità velocità della CPU? Frazionemigliorato = 0.4 Speedupmigliorato = 10 Speedupglobale = 1/(0.6 + 0.4/10) = 1/0.64 ≈ 1.56 L’incremento di costo è quindi maggiore del miglioramento di prestazioni: la modifica non migliora il rapporto costo/prestazioni Prestazioni 16 Corollario della legge di Amdahl Prestazioni 17 Osservazioni sulla legge di Amdahl Se un miglioramento è utilizzabile solo per una frazione del Per ottenere un miglioramento evidente delle prestazioni, lavoro complessivo, allora non è possibile accelerare il lavoro più più del reciproco di uno meno tale frazione occorre intervenire sulle componenti della macchina che influiscono sul tempo di esecuzione di una frazione elevata dell’ dell’esecuzione Anche così così, il miglioramento relativo non sarà sarà proporzionale a quello globale Non ci si può aspettare che il miglioramento di una delle componenti della macchina produca un aumento delle prestazioni proporzionale al miglioramento Esempio Prestazioni 18 L’esecuzione di un programma richiede 100 sec e le moltiplicazioni sono responsabili dell’ dell’80% di tale tempo. Quanto si deve migliorare la velocità velocità della moltiplicazione perché perché il programma abbia un tempo di esecuzione di 20 sec? 100/20 = ( (1(1-0.8) + 0.8/Speedup 0.8/Speedupmigliorato )-1 4/Speedup 4/Speedupmigliorato = 0 Prestazioni 19 L’indice MIPS Problemi dell’indice MIPS MIPS = milioni di istruzioni per secondo Dipende dall’ dall’insieme di istruzioni dell’ dell’architettura È difficile confrontare architetture con diversi insiemi di istruzioni istruzioni Varia, anche sulla stessa macchina, a seconda del programma considerato A seconda del sottoinsieme di istruzioni usato più più frequentemente Può variare in maniera inversamente proporzionale al tempo di esecuzione del programma! Poiché Poiché MIPS rappresenta la frequenza delle operazioni per unità unità temporale, le prestazioni delle macchine più più veloci che hanno elevati valori di MIPS possono essere specificate come l’l’inverso del tempo di esecuzione Caratteristica positiva L’indice MIPS è intuitivo da comprendere: le macchine più più veloci hanno valori più più elevati Prestazioni 20 Esempio: due calcolatori, uno dei quali senza unità unità per i calcoli in virgola mobile (FPU) Le istruzioni in virgola mobile richiedono più più tempo rispetto alle istruzioni su interi Il calcolatore con FPU impiega meno tempo per eseguire un programma, ma ha un MIPS più più basso Il calcolatore senza FPU esegue semplice istruzioni con il risultato risultato di avere un MIPS più più elevato, ma ha un tempo di esecuzione più più elevato Prestazioni 21