Valutazione delle prestazioni Architetture dei Calcolatori (lettere A-I) Valutazione delle prestazioni Misura/valutazione di un insieme di parametri quantitativi per Quantificare le caratteristiche di una macchina (velocità, ) Operare scelte intelligenti (ad es., miglioramento dell hardware vs installazione di nuovo software) Orientarsi sull acquisto del calcolatore più adatto per l applicazione data Cosa significa il calcolatore A ha prestazioni migliori del calcolatore B? Termina lo stesso compito in un tempo minore rispetto al calcolatore B Nello stesso periodo di tempo riesce ad eseguire più compiti Valeria Cardellini 1
Tempo di risposta e throughput Tempo di risposta (o di esecuzione) Intervallo temporale che intercorre tra l inizio ed il completamento di un lavoro o compito elaborativo Inclusi tempo di esecuzione del processore, accessi al disco, accessi in memoria, attività di I/O, overhead del sistema operativo, Esempio: durata dell esecuzione di un programma Metrica di interesse per l utente Throughput Ammontare complessivo di lavoro svolto in un dato intervallo temporale Esempio: numero di programmi eseguiti nell unità di tempo Metrica di interesse per l amministratore del sistema Valeria Cardellini 2 Prestazioni e tempo di esecuzione La frase X è più veloce di Y è usata per indicare che il tempo di risposta (o di esecuzione), per un dato lavoro, è minore in X che in Y Tempo di esecuzione = reciproco della prestazione Miglioramento delle prestazioni Diminuzione del tempo di esecuzione Valeria Cardellini 3
Esempio Se la macchina A esegue un programma in 10 secondi e la macchina B esegue lo stesso programma in 15 secondi, quale affermazione è corretta? A è il 50% più veloce di B A è il 33% più veloce di B L affermazione che A è n% più veloce di B può essere espressa come Valeria Cardellini 4 Ciclo di clock Durata del periodo di un oscillazione completa del segnale di sincronizzazione Gli impulsi del clock indicano quando cominciare l attività Spesso sostituisce i secondi come unità di misura del tempo di CPU Tempo di CPU: tempo speso dalla CPU per eseguire un dato programma Durata del ciclo di clock = tempo tra due impulsi consecutivi Secondi per ciclo Frequenza di clock = cicli di clock per secondo 1 Hz = sec -1 Esempio: un calcolatore con frequenza di clock pari a 4 GHz possiede un ciclo di clock di durata (4 * 10 9 ) -1 = 0.25 * 10-9 = 0.25 nanosecondi Valeria Cardellini 5
Migliorare le prestazioni Migliorare le prestazioni = ridurre il tempo di esecuzione Per migliorare le prestazioni, a parità di tutto il resto, occorre: Ridurre il numero di cicli richiesti da un programma Ridurre la durata del ciclo di clock Aumentare la frequenza del clock Valeria Cardellini 6 Principi quantitativi di progettazione dei calcolatori Rendere veloce il caso più comune Si deve favorire il caso più frequente a discapito di quello più raro Il caso più frequente è spesso il più semplice e può essere reso più veloce del caso infrequente Legge di Amdahl Il miglioramento di prestazione che può essere ottenuto usando alcune modalità di esecuzione più veloci è limitato dalla frazione di tempo nella quali tali modalità sono impiegate La legge di Amdahl permette di calcolare questo guadagno di prestazione Valeria Cardellini 7
Speedup oppure Lo speedup fornisce informazioni su quanto più velocemente un lavoro verrà eseguito usando il calcolatore con la miglioria rispetto al calcolatore originale Valeria Cardellini 8 Legge di Amdahl Frazione migliorato ( 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 usati per il miglioramento, la frazione è 20/60 Speedup migliorato ( 1), ovvero il miglioramento ottenuto dal modo di esecuzione più veloce (quanto più veloce il programma può essere eseguito se il modo di esecuzione è utilizzato per l intero programma) Esempio: se il modo di esecuzione più veloce è 2 sec, mentre il modo originale è 5 secondi per la stessa porzione di programma, lo speedup è 5/2 Valeria Cardellini 9
Corollario della legge di Amdahl Se un miglioramento è utilizzabile solo per una frazione del lavoro complessivo, allora non è possibile accelerare il lavoro più del reciproco di uno meno tale frazione Valeria Cardellini 10 Osservazioni sulla legge di Amdahl Per ottenere un miglioramento evidente delle prestazioni, occorre intervenire sulle componenti della macchina che influiscono sul tempo di esecuzione di una frazione elevata dell esecuzione Anche così, il miglioramento relativo non 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 L esecuzione di un programma richiede 100 sec e le moltiplicazioni sono responsabili dell 80% di tale tempo. Quanto si deve migliorare la velocità della moltiplicazione perché il programma abbia un tempo di esecuzione di 20 sec? 100/20 = ( (1-0.8) + 0.8/Speedup migliorato ) -1 4/Speedup migliorato = 0 Valeria Cardellini 11
Esempio 1 Si consideri un miglioramento di un processore di un sistema utilizzato per servizi Web, tale che la nuova CPU sia 10 volte 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 I/O per il 60%, quale è lo speedup globale? Frazione migliorato = 0.4 Speedup migliorato = 10 Speedup globale = 1/(0.6 + 0.4/10) = 1/0.64 1.56 Valeria Cardellini 12 Esempio 2 Supponiamo di potere aumentare la velocità della CPU della nostra macchina di un fattore 5 (senza influenzare le 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 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à della CPU? L incremento di costo è quindi maggiore del miglioramento di prestazioni: la modifica non migliora il rapporto costo/prestazioni Valeria Cardellini 13
Tempo di risposta e di CPU Il tempo è una misura delle prestazioni di un calcolatore: il calcolatore che svolge la stessa quantità di lavoro nel minor tempo è più veloce Tempo di risposta: rappresenta la latenza per il completamento di un lavoro ed include accessi al disco, accessi alla memoria, 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 esecuzione di altri programmi Tempo di CPU = tempo di CPU di utente + tempo di CPU di sistema Tempo di CPU di 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 Valeria Cardellini 14 Durata di diverse istruzioni In genere, istruzioni di tipo diverso richiedono quantità diverse di tempo. Esempi: La moltiplicazione richiede più tempo dell addizione L accesso alla memoria richiede più tempo dell accesso ai registri Fissata la durata del ciclo di clock, varia il numero di cicli di clock richiesti dalle diverse istruzioni Si può calcolare il numero medio di cicli di clock per istruzioni di un dato programma (o frammento di programma) Valeria Cardellini 15
Cicli di clock per istruzione (CPI) Introducendo nella formula le unità di misura, si può notare la relazione tra i vari componenti Valeria Cardellini 16 Numero totale di cicli di clock I i = numero di volte che l istruzione di tipo i viene eseguita in un programma CPI i = numero di cicli di clock per l istruzione di tipo i Possiamo quindi utilizzare questa formula per esprimere il tempo di CPU: Valeria Cardellini 17
Formula per CPI Ogni singolo CPI i viene moltiplicato per la frazione delle occorrenze nel programma Valeria Cardellini 18 Esempio Si consideri un calcolatore in 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 Valeria Cardellini 19
Fattori che influiscono sulle prestazioni Algoritmo Influisce sul numero di istruzioni (CI) Numero di istruzioni nel programma sorgente Può influire su CPI Uso di istruzioni più veloci o più lente Linguaggio di programmazione Influisce sul numero di istruzioni (CI) Influisce su CPI Caratteristiche del linguaggio (es: astrazione dei dati) Compilatore Influisce sul numero di istruzioni (CI) e su CPI Insieme di istruzioni dell architettura Influisce sul numero di istruzioni (CI), su CPI e sulla frequenza del ciclo di clock Valeria Cardellini 20 L indice MIPS MIPS = milioni di istruzioni per secondo Poiché MIPS rappresenta la frequenza delle operazioni per unità temporale, le prestazioni delle macchine più veloci che hanno elevati valori di MIPS possono essere specificate come l inverso del tempo di esecuzione Caratteristica positiva L indice MIPS è intuitivo da comprendere: le macchine più veloci hanno valori più elevati Valeria Cardellini 21
Problemi dell indice MIPS Dipende dall insieme di istruzioni dell architettura È difficile confrontare architetture con diversi insiemi di istruzioni Varia, anche sulla stessa macchina, a seconda del programma considerato A seconda del sottoinsieme di istruzioni usato più frequentemente Può variare in maniera inversamente proporzionale al tempo di esecuzione del programma! Esempio: due calcolatori, uno dei quali senza unità per i calcoli in virgola mobile (FPU) Le istruzioni in virgola mobile richiedono più tempo rispetto alle istruzioni su interi Il calcolatore con FPU impiega meno tempo per eseguire un programma, ma ha un MIPS più basso Il calcolatore senza FPU esegue semplice istruzioni con il risultato di avere un MIPS più elevato, ma ha un tempo di esecuzione più elevato Valeria Cardellini 22 Indice MIPS relativo Tempo CPU di riferimento = tempo di esecuzione di un programma sulla macchina di riferimento Tempo CPU da valutare = tempo di esecuzione dello stesso programma sulla macchina da valutare MIPS CPU di riferimento = MIPS misurato per la macchina di riferimento Negli anni 80 la principale macchina di riferimento è stata il VAX 11/780, detta la macchina da 1 MIPS Il vantaggio del MIPS relativo è piccolo Bisogna conoscere il tempo di esecuzione, il programma ed i suoi dati di ingresso per ottenere informazioni significative Valeria Cardellini 23
Benchmark Benchmark: programma per valutare le prestazioni Definizione del workload (carico di lavoro) Tre tipologie di benchmark Programmi reali Usati per risolvere problemi reali Le prestazioni sono valutate meglio eseguendo un applicazione reale che rappresenta un tipico workload Benchmark ridotti Tentativi di circoscrivere piccoli pezzi chiave dei programmi Benchmark sintetici Cercano di simulare la frequenza media degli operandi e delle operazioni di un vasto insieme di programmi reali Standard Perfomance Evaluation Corporation (SPEC), http://www.spec.org/ EDN Embedded Microprocessor Benchmark Consortium (EEMBC) Valeria Cardellini 24 SPEC CPU2000 12 programmi con numeri interi (SPEC CINT2000) 14 programmi con numeri in virgola mobile (SPEC CFP2000) Valeria Cardellini 25