1 / 18

Calcolatori Elettronici Valutazione delle Prestazioni

Calcolatori Elettronici Valutazione delle Prestazioni. Francesco Lo Presti Rielaborate da Salvatore Tucci. Valutazione delle Prestazioni. Misura/valutazione di un insieme di parametri quantitativi per caratterizzare le prestazioni di un un calcolatore

Download Presentation

Calcolatori Elettronici Valutazione delle Prestazioni

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Calcolatori ElettroniciValutazione delle Prestazioni Francesco Lo Presti Rielaborate da Salvatore Tucci

  2. Valutazione delle Prestazioni • Misura/valutazione di un insieme di parametriquantitativi per caratterizzare le prestazioni di un un calcolatore • Prestazioni ~ Tempo di esecuzione di un insieme di applicazioni • 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 • 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’hardware implementa il set di istruzioni • Come il sistema di memoria-I/O opera Prestazioni

  3. Tempo di risposta e throughput • Tempo di risposta (o di esecuzione) • Intervallo temporale che intercorre tra l’inizio ed il completamento di programma/job • 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 Prestazioni

  4. 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 • PrestazioneX=1/Tempo di esecuzioneX • Miglioramento delle prestazioni • Diminuzione del tempo di esecuzione Prestazioni

  5. 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à 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 Prestazioni

  6. Ciclo di clock • Durata del periodo di un’oscillazione completa del segnale di sincronizzazione • Spesso sostituisce i secondi come unità di misura del tempo di CPU • 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 * 109)-1 = 0.25 * 10-9 = 0.25 nanosecondi Prestazioni

  7. Cicli di Clock della CPU per il programma Tempo di CPU= Frequenza di Clock Tempo di CPU • Per un dato programma • oppure • 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 Tempo di CPU= Cicli di Clock della CPU per il programma * Ciclo di Clock Prestazioni

  8. n Cicli di Clock della CPU per il programma=Σ (CPIi*Ii) i=1 n Tempo di CPU=Ciclo di Clock * Σ (CPIi*Ii) i=1 Numero Totale di Cicli di Clock • 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 • n tipi di istruzioni diverse • ALU, lw, sw, jump, branch, etc… • Ii = numero di volte che l’istruzione di tipo i viene eseguita nel programma • CPIi = numero di cicli di clock per l’istruzione di tipo i • Possiamo quindi utilizzare questa formula per esprimere il tempo di CPU: Prestazioni

  9. Numero Istruzioni * CPI Tempo di CPU = Frequenza di Clock CPI = ( CPIi * fi ) n Σ i=1 Cicli di Clock per Istruzione (CPI) • CPI: numero medio di cicli di clock per istruzione di un dato programma • Ogni singolo CPIi viene moltiplicato per la frazione delle occorrenze nel programma - fi=Ii/Numero Istruzioni - delle istruzioni di tipo i • Riscriviamo il Tempo di CPU Tempo di CPU= Numero Istruzioni * CPI * Ciclo di Clock Prestazioni

  10. CPI = ( CPIi * fi ) n Σ i=1 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 Tempo di CPU= Numero Istruzioni * CPI * Ciclo di Clock 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

  11. Fattori che influiscono sulle prestazioni • Algoritmo • Influisce sul numero di istruzioni (CI) • Numero di istruzioni nel programma sorgente • Influisce 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 Prestazioni

  12. 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 Prestazioni

  13. Speedup oppure • Lo speedup fornisce informazioni su quanto più velocemente un lavoro verrà eseguito usando il calcolatore con la miglioria rispetto al calcolatore originale Prestazioni

  14. 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 Frazionemigliorato = Tempo di Calcolo Migliorabile Parte Migliorabile Parte non Migliorabile Tempo di Calcolo Tempo di Calcolo Migliorabile Tempo di Calcolo Prestazioni

  15. Legge di Amdahl • Speedupmigliorato (1), ovvero il miglioramento ottenuto dal modo di esecuzione più veloce • 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 Tempo di Calcolo Migliorabile Parte Migliorabile Tempo di Calcolo Migliorato Tempo di Calcolo Migliorabile Tempo di Calcolo Migliorato Speedupmigliorato= Parte Migliorata Prestazioni

  16. Legge di Amdahl Tempo di calcolonuovo=Tempo di calcolo non migliorabile+Tempo di calcolo migliorato Tempo di calcolonuovo=Tempo di calcolo non migliorabile+ Tempo di calcolonuovo=Tempo di calcolo*(1-Frazionemigliorato)+ Tempo di calcolonuovo=Tempo di calcolo*[(1-Frazionemigliorato)+ Speedupglobale= = Tempo di calcolo migliorabile Speedupmigliorato Tempo di calcolo*Frazionemigliorato Speedupmigliorato Frazionemigliorato Speedupmigliorato 1 Frazionemigliorato Tempo di calcolo Tempo di calcolonuovo Speedupmigliorato (1-Frazionemigliorato)+ Prestazioni

  17. Esempio • 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? Frazionemigliorato = 0.4 Speedupmigliorato = 10 Speedupglobale = 1/(0.6 + 0.4/10) = 1/0.64  1.56 Prestazioni

  18. 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 Prestazioni

More Related