Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput



Documenti analoghi
Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Calcolatori Elettronici A a.a. 2008/2009

Architetture dei Calcolatori (Lettere

La Valutazione delle Prestazioni

Prestazioni 1. Prestazioni 2. Prestazioni 3

Calcolatori Elettronici

Valutazione delle Prestazioni

Valutazione delle prestazioni

Valutazione delle prestazioni. Valutazione delle prestazioni. Tempo di risposta e throughput. Prestazioni e tempo di esecuzione

Corso di Architettura degli Elaboratori

Tutorato 11 dicembre 2015

Esempio: aggiungere j

Architettura hardware

CPU. Maurizio Palesi

Più processori uguale più velocità?

Memoria Secondaria o di Massa

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6

Complessità Computazionale

Architettura dei calcolatori I parte Introduzione, CPU

Laboratorio di Informatica

= 0, 098 ms. Da cui si ricava t 2 medio

1. Che cos è la multiprogrammazione? Si può realizzare su un sistema monoprocessore? 2. Quali sono i servizi offerti dai sistemi operativi?

I componenti di un Sistema di elaborazione. CPU (central process unit)

DIMENSIONI E PRESTAZIONI

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale

CALCOLATORI ELETTRONICI 29 giugno 2011

L unità di elaborazione pipeline L unità Pipelining

Dispensa di Informatica I.1

Sistemi Operativi SCHEDULING DELLA CPU

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

La memoria - generalità

SISTEMI DI NUMERAZIONE E CODICI

Informatica - A.A. 2010/11

PIL : produzione e reddito

Equazione quantitativa della moneta

Esame di INFORMATICA

Architettura dei calcolatori II parte Memorie

Probabilità condizionata: p(a/b) che avvenga A, una volta accaduto B. Evento prodotto: Evento in cui si verifica sia A che B ; p(a&b) = p(a) x p(b/a)

CLASSE III A I.T.I. (ABACUS) SISTEMI DI ELABORAZIONE E TRASMISSIONE DEI DATI VERIFICA DI RECUPERO

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

b. Che cosa succede alla frazione di reddito nazionale che viene risparmiata?

La Memoria Cache. Informatica B. Daniele Loiacono

Corso di formazione CerTICTablet

Vari tipi di computer

Misure finanziarie del rendimento: il Van

Esempi di algoritmi. Lezione III

1.4a: Hardware (Processore)

Il concetto di valore medio in generale

Fondamenti di Informatica Ingegneria Clinica Lezione 16/10/2009. Prof. Raffaele Nicolussi

Misure finanziarie del rendimento: il Van

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

C. P. U. MEMORIA CENTRALE

La memoria centrale (RAM)

Gli input sono detti anche fattori di produzione: terra, capitale, lavoro, materie prime.

4 3 4 = 4 x x x 10 0 aaa

Tempo e rischio Tempo Rischio

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Corso di Informatica

Struttura del calcolatore

Ai fini economici i costi di un impresa sono distinti principalmente in due gruppi: costi fissi e costi variabili. Vale ovviamente la relazione:

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Architettura del calcolatore

Le prestazioni di un sistema informatico

Corso di Informatica

Informatica. Rappresentazione dei numeri Numerazione binaria

MISURARE IL COSTO DELLA VITA. Harcourt Brace & Company

Processi e Thread. Scheduling (Schedulazione)

Antonella Martinucci, Rossana Nencini, 2013 IL PESO. classe quarta

INDICI DI BILANCIO. Lo stato patrimoniale, riclassificato, assume la forma che schematizziamo di seguito:

Edited by Foxit PDF Editor Copyright (c) by Foxit Software Company, 2004 For Evaluation Only.

Approccio stratificato

Gestione della memoria centrale

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

I ricavi ed i costi di produzione

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

Inflazione. L indice dei prezzi al consumo ci consente quindi di introdurre anche il concetto di inflazione:

J. Assfalg Appunti di Sistemi Operativi

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

SCHEDA DI RECUPERO SUI NUMERI RELATIVI

Gerarchie di Memoria Andrea Gasparetto

Architettura hardware

(liberamente interpretato da SCHEDA ALUNNI. Descrizione dell attività:

Misure finanziarie del rendimento: il Van

Indice di rischio globale

Unità di Misura Corso di Abilità Informatiche Laurea in Fisica. prof. Corrado Santoro

Introduzione alla Virtualizzazione

COME È FATTO IL COMPUTER

Ottimizzazione Multi Obiettivo

Testi di Esercizi e Quesiti 1

RISCHIO E CAPITAL BUDGETING

Architettura degli Elaboratori I Esercitazione 1 - Rappresentazione dei numeri

Utilizzo delle formule in Excel

PLC Programmable Logic Controller

Esercitazione 23 maggio 2016

Interesse, sconto, ratei e risconti

L Unità Centrale di Elaborazione

Architettura di un computer

Transcript:

Valutazione delle Prestazioni Architetture dei Calcolatori (Lettere A-I) Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi 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? 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 l implementa il set di istruzioni Come il sistema di memoria-i/o opera Prestazioni 1 Tempo di risposta e throughput Prestazioni e Tempo di Esecuzione Tempo di risposta (o di esecuzione) Intervallo temporale che intercorre tra l inizio l ed il completamento di programma/job Inclusi tempo di esecuzione del processore, accessi al disco, accessi cessi in memoria, attività di I/O, overhead del sistema operativo, Esempio: durata dell esecuzione esecuzione di un programma Metrica di interesse per l utentel Throughput Ammontare complessivo di lavoro svolto in un dato intervallo temporale Esempio: numero di programmi eseguiti nell unit unità di tempo Metrica di interesse per l amministratore l del sistema La frase X è più veloce di Y Y è usata per indicare che il tempo di risposta (o di esecuzione), per un dato lavoro, è minore in X che in Y Prestazione X =1/Tempo di esecuzione X Prestazioni 2 Miglioramento delle prestazioni Diminuzione del tempo di esecuzione Prestazioni 3

Tempo di risposta e di CPU Ciclo di clock 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 l 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 4 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 * 10 9 ) - 1 = 0.25 * 10-9 = 0.25 nanosecondi Prestazioni 5 Tempo di CPU Per un dato programma Tempo di CPU= Cicli di Clock della CPU per il programma * Ciclo di Clock oppure Tempo di CPU= CiclidiClock dellacpu per ilprogramma Frequenza di Clock 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 Ridurre la durata del ciclo di clock Aumentare la frequenza del clock 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 d clock richiesti dalle diverse istruzioni Si può calcolare il numero medio di cicli di clock per istruzione di un dato programma (o frammento di programma) Prestazioni 6 Prestazioni 7

Cicli di Clock per Istruzione (CPI) Per un dato programma CPI = Riscriviamo il Tempo di CPU CiclidiClock dellacpu per ilprogramma Numero Istruzioni Tempo di CPU= Numero Istruzioni * CPI * Ciclo di Clock Tempo di CPU = Numero Istruzioni * CPI Frequenza di Clock Numero Totale di Cicli di Clock n CiclidiClock dellacpu per ilprogramma=σ (CPI i *I i ) n tipi di istruzioni diverse ALU, lw, sw, jump, branch, etc I i = numero di volte che l istruzione l di tipo i viene eseguita nel programma CPI i = numero di cicli di clock per l istruzione l di tipo i Possiamo quindi utilizzare questa formula per esprimere il tempo di CPU: Tempo di CPU=Ciclo di Clock * Σ (CPI i *I i ) n Prestazioni 8 Prestazioni 9 Formula per CPI Esempio n ( ) Σ (CPI i *I i ) I i CPI = = Σ n CPI i * Numero Istruzioni Numero Istruzioni Ogni singolo CPI i viene moltiplicato per la frazione delle occorrenze nel programma - f i =I i /Numero Istruzioni - delle istruzioni di tipo i CPI = Σ n ( CPI i * f i ) 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 = Σ n ( CPI i * f i ) 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

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( 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 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 12 Prestazioni 13 Speedup Legge di Amdahl oppure Lo speedup fornisce informazioni su quanto più velocemente un lavoro verrà eseguito usando il calcolatore con la miglioria rispetto al calcolatore originale 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 modificati grazie al miglioramento, la frazione è 20/60 Speedup migliorato ( 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 Prestazioni 14 Prestazioni 15

Esempio 1 Esempio 2 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 Speedup globale 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 S 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 Prestazioni 16 Prestazioni 17 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 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 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 Speedup migliorato Prestazioni 18 Prestazioni 19

L indice MIPS Problemi dell 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 l del tempo di esecuzione Caratteristica positiva L indice MIPS è intuitivo da comprendere: le macchine più veloci hanno valori più elevati 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 Prestazioni 20 Prestazioni 21