Calcolatori Elettronici A a.a. 2008/2009



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

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

Valutazione delle Prestazioni

Esempio: aggiungere j

Tutorato 11 dicembre 2015

Corso di Architettura degli Elaboratori

Architettura hardware

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

CPU. Maurizio Palesi

Approccio stratificato

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)

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

Gestione della memoria centrale

Sistemi Operativi SCHEDULING DELLA CPU

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

Scheduling. Sistemi Operativi e Distribuiti A.A Bellettini - Maggiorini. Concetti di base

Dispensa di Informatica I.1

Complessità Computazionale

Sistema operativo: Gestione della memoria

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

La Valutazione delle Prestazioni

4 3 4 = 4 x x x 10 0 aaa

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

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

Memoria Secondaria o di Massa

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

Architettura del calcolatore

Calcolatori Elettronici B a.a. 2008/2009

Scheduling. Scheduling 14/12/2003 1/7

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Informatica - A.A. 2010/11

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Funzioni in C. Violetta Lonati

ESERCIZI SULLO SCHEDULING DEI PROCESSI

Linguaggi di programmazione

Struttura del calcolatore

La memoria - generalità

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

introduzione I MICROCONTROLLORI

Linux lo installo a 32 o 64 bit? (teoria e pratica)

Architettura di un computer

Più processori uguale più velocità?

2. Leggi finanziarie di capitalizzazione

STRUTTURE DEI SISTEMI DI CALCOLO

1.4a: Hardware (Processore)

DIMENSIONI E PRESTAZIONI

Il Sistema Operativo. Di cosa parleremo? Come si esegue un programma. La nozione di processo. Il sistema operativo

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

Processi e Thread. Scheduling (Schedulazione)

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Esame di INFORMATICA

La Metodologia adottata nel Corso

Lezione n.19 Processori RISC e CISC

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Vari tipi di computer

Architetture Applicative

Introduzione alla Virtualizzazione

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

Architettura di un calcolatore

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Calcolatori Elettronici

L unità di elaborazione pipeline L unità Pipelining

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Il Sistema Operativo (1)

Introduzione al sistema operativo Il file system: file, directory,...

Psicometria (8 CFU) Corso di Laurea triennale STANDARDIZZAZIONE

risulta (x) = 1 se x < 0.

Sistemi Operativi mod. B. Sistemi Operativi mod. B A B C A B C P P P P P P < P 1, >

Fasi di creazione di un programma

Esempi di algoritmi. Lezione III

Varie tipologie di memoria

Linux nel calcolo distribuito

Guida Compilazione Piani di Studio on-line

MODELLISTICA DI IMPIANTI E SISTEMI 2

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

SISTEMI DI NUMERAZIONE E CODICI

Speedup. Si definisce anche lo Speedup relativo in cui, invece di usare T 1 si usa T p (1).

La schedulazione. E.Mumolo

Webinar e Manuale Operativo Tecnica di Trading

Quando troncare uno sviluppo in serie di Taylor

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Matrice Excel Calcolo rata con DURATA DEL FINANZIAMENTO determinata dall'utente

- 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

Il database management system Access

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Gestione delle transazioni. Database Management Systems 3ed, R. Ramakrishnan and J. Gehrke 1

C. P. U. MEMORIA CENTRALE

UTILIZZATORI A VALLE: COME RENDERE NOTI GLI USI AI FORNITORI

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

ALGEBRA DELLE PROPOSIZIONI

RICERCA AZIONE STRUMENTI

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

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

LA TRASMISSIONE DELLE INFORMAZIONI QUARTA PARTE 1

CONTROLLO IN TENSIONE DI LED

Transcript:

Calcolatori Elettronici A a.a. 2008/2009 PRESTAZIONI DEL CALCOLATORE Massimiliano Giacomin

Due dimensioni Tempo di risposta (o tempo di esecuzione): il tempo totale impiegato per eseguire un task (include il tempo CPU, il tempo per I/O, dischi, accesso alla memoria, overhead sistema operativo) Throughput quantità di lavoro eseguita nell unità di tempo Esempio Processore più veloce tempo di risposta e throughput Da uno a due processori throughput, mentre tempo di risposta (comunque, i due fattori sono collegati ) solo se carico > throughput 2

Importanza per diverse applicazioni e classi di computer Desktop computer: - tempo di risposta Server: - throughput e tempo di risposta Embedded computer: - vincoli real time sul tempo di risposta hard real time: limite massimo fissato per eseguire un compito quando accade un determinato evento (es: ABS) soft real time: tempo di risposta medio, oppure limite non superato almeno per una certa frazione degli eventi (es: DVD) 3

Focus su: tempo di esecuzione Per una macchina X (e un programma P) vale la relazione prestazioni x = 1 tempo di esecuzione X Se per due macchine X e Y, le prestazioni di X sono migliori di Y (sullo stesso programma P) si ha che prestazioni X > prestazioni Y 1 1 > tempo di esecuzione X tempo di esecuzione Y tempo di esecuzione Y > tempo di esecuzione X 4

Relazione fra le prestazioni di 2 macchine Se la macchina X è n volte più veloce della macchina Y si scriverà: prestazioni X prestazioni Y = n E quindi prestazioni X prestazioni Y tempo di esecuzione Y = = n tempo di esecuzione X (diciamo anche che Y è n volte più lenta) 5

Fattori che influenzano le prestazioni Per un dato programma, le prestazioni dipendono da: Algoritmo Linguaggio di programmazione Compilatore Sistema operativo Dispositivi di I/O La memoria Il processore FOCUS SU: PROCESSORE 6

Tempo di CPU vs. tempo di risposta Tempo di CPU: tempo speso dal processore per eseguire un dato programma, senza considerare il tempo speso per I/O o per altri programmi Tempo di risposta: tempo percepito dall utente Noi: consideriamo il tempo di CPU, che in realtà include - user CPU time (per il programma) - system CPU time (per il sistema operativo) Si considera un generico programma, senza distinzione utente vs. sistema operativo 7

Tempo di CPU: relazioni tempo di CPU relativo a un programma cicli di clock della CPU relativi al programma = periodo di ciclo del clock tempo di CPU relativo a un programma = cicli di clock della CPU relativi al programma frequenza di clock Ma i cicli di clock dipendono: - dal numero delle istruzioni - da quanti cicli di clock sono richiesti dalle istruzioni 8

CPI: clock Cycles Per Instruction CPI (clock per istruzione): il numero medio di cicli di clock per istruzione, calcolato come la media del numero di cicli di clock che le diverse istruzioni di un programma richiedono per essere completate cicli di clock della CPU numero di istruzioni nel programma = CPI T CPU = numero_istruzioni * CPI * T clock Tempo medio di esecuzione per istruzione = numero di istruzioni CPI f clock 9

Esempio Siano date due implementazioni diverse dello stesso set di istruzioni Il processore A ha una durata di ciclo di clock pari a 1 ns e un CPI pari a 2 per un determinato programma Il processore B ha una durata del ciclo di clock pari a 2 ns e un CPI pari a 1,2 per lo stesso programma Quale dei due è il più veloce? (sia I il numero di istruzioni del programma) cicli di clock della CPU A I 2 cicli di clock della CPU B I 1,2 tempo di CPU A = cicli di clock della CPU A periodo del ciclo di clock A = I 2 1 ns = 2 I ns tempo di CPU B = I 1,2 2 ns = 2,4 I ns = = Prestazioni della CPU A Prestazioni della CPU B Tempo di esecuzione B Tempo di esecuzione A 2,4 I ns = = = 2 I ns 1,2 la CPU di A è 1,2 volte più veloce 10

Esercizio Si supponga di disporre di due macchine: M 1 con frequenza di clock pari a 200 MHz e M 2 con frequenza di clock pari a 300 MHz; e si consideri un programma tale che: su M 1 su M 2 Tempo 10 sec 5 sec Istruzioni eseguite 200 x 10 6 160 x 10 6 Trovare i CPI per eseguire il programma su ciascuna macchina T M1 = I M1 x CPI M1 / f M1 = 6 200 10 CPIM1 10 sec = 6 200 10 cicli/sec CPI M1 = 10 cicli T M2 = I M2 x CPI M2 / f M2 = 6 160 10 CPIM2 5 sec = 6 300 10 cicli/sec CPI M2 = 9,375 cicli ( durata ciclo clock M1 = 1 / (200x10 6 cicli/sec) = 5 ns durata ciclo clock M2 = 1 / (300x10 6 cicli/sec) = 3,3 ns ) 11

Espressione dei CPI Si è visto che nel confronto tra processori che implementano la stessa ISA il numero di istruzioni non conta CPI può rappresentare il numero medio di cicli di clock delle istruzioni riferito a un programma ma più in generale al carico di lavoro previsto (instruction mix) CPI = = n i= 1 ( f i CPI i) dove f i è la frequenza delle istruzioni della classe i e CPI i è il numero di cicli per le istruzioni della classe i, mentre n è il numero delle classi n i=1 (CPI I i Ci) (Ci: numero di istruzioni i eseguite) 12

Esercizio I progettisti hardware di un certo calcolatore hanno fornito le seguenti informazioni Classe di istruzioni CPI A 1 B 2 C 3 Un progettista di compilatori deve scegliere tra due sequenze di codice Sequenza di Numero di istruzioni per ciascuna classe codice A B C 1 2 1 2 2 4 1 1 Quale sequenza di codice causa l esecuzione del maggior numero di istruzioni? Quale viene eseguita più velocemente? Qual è il CPI per ciascuna delle sequenze? 13

Soluzione Sequenza 1: 2 + 1 + 2 = 5 istruzioni Sequenza 2: 4 + 1 + 1 = 6 istruzioni Il numero minore di istruzioni si ottiene con la sequenza 1 Usando la formula: cicli di clock della CPU = n i= 1 (CPI i C ) i Cicli di clock della CPU 1 = (2 1)+(1 2)+(2 3)= 2 + 2 + 6 = 10 cicli Cicli di clock della CPU 2 = (4 1)+(1 2)+(1 3)= 4 + 2 + 3 = 9 cicli La sequenza 2 è più veloce Dato che: CPI = cicli di clock della CPU / numero di istruzioni CPI 1 = cicli di clock della CPU 1 / numero di istruzioni 1 = 10/5 = 2 CPI 2 = cicli di clock della CPU 2 / numero di istruzioni 2 = 9/6 = 1,5 14

Fattori che influenzano il tempo di CPU Algoritmo: #istruzioni, CPI (es: se usa molti numeri FP, CPI più alto) Linguaggio di programmazione: #istruzioni, CPI (le caratteristiche del linguaggio influiscono sul numero e tipo di istruzioni macchina) Compilatore: #istruzioni, CPI (compilatori più o meno efficienti, possono tener conto delle caratteristiche del processore) ISA: #istruzioni, CPI, T clock (RISC vs. CISC) Implementazione del processore (fissato ISA): CPI e T clock 15

Valutazione di prestazioni del calcolatore attraverso benchmark Benchmark: insieme di programmi scelti per misurare le prestazioni (approssimano il carico di lavoro di una classe di utenti) SPEC (System Performance Evaluation Corporation): definisce un insieme di benchmark standard per specifici ambienti: - orientati alla performance della CPU - grafica - object-oriented computing - web server - ecc. ecc. Includono regole precise per la reportistica: i report devono garantire la riproducibilità dei risultati (informazioni su processore, cache, memoria, sistema operativo, compilatore, ecc. ecc.) 16

Valutazione di prestazioni del calcolatore attraverso benchmark Valutazione: media pesata dei tempi di esecuzione P i rispetto alla frequenza prevista di utilizzo f i Problemi indotti dall uso di benchmark: ottimizzazioni di particolari sequenze di istruzioni solo perché appaiono nei benchmark (es: opzioni di compilazione rivolte ai benchmark: ma cosa succede per le applicazioni generiche?) 17

Un modo scorretto (e old-style) di valutare le prestazioni: i MIPS MIPS (milioni di istruzioni al secondo): numero di istruzioni MIPS = 6 tempo di esecuzione 10 Evidenze del fatto che i MIPS non sono adeguati: quante istruzioni al secondo non è significativo, se non si sa che cosa fanno un programma più lento può avere MIPS più elevati! (per esempio, per aumentare i MIPS potrei inserire nop!!!) è impossibile dire che un calcolatore esegue x milioni di istruzioni al secondo, visto che i MIPS variano in base al programma eseguito 18

Legge di Amdahl: un principio di buon senso Esempio Si supponga di aver migliorato una macchina in modo che le operazioni in virgola mobile vengano svolte 5 volte più velocemente Se prima del miglioramento il tempo di esecuzione di un dato benchmark era di 10 secondi quale sarà il tempo di esecuzione dopo il miglioramento supponendo che l esecuzione delle operazioni in virgola mobile occupasse la metà dei 10 secondi? 5 secondi Tempo dopo il miglioramento = + 5 secondi = 6 secondi 5 prestazioni dopo il miglioramento Speedup = = prestazioni prima del miglioramento tempo prima del miglioramento = tempo dopo il miglioramento 10 6 = 1,67 Le prestazioni migliorano solo di un fattore 1,67 e non di un fattore 5!!! 19

Legge di Amdahl: un principio di buon senso Se si migliora un aspetto/componente di una macchina, il possibile incremento delle prestazioni è limitato dall ammontare dell utilizzo dell aspetto in questione Tempo di esecuzione dopo il miglioramento = tempo di esecuzione influenzato dal miglioramento ammontare del miglioramento + tempo di esecuzione non influenzato Conviene ottimizzare i casi più frequenti! (es. le istruzioni che vengono usate più frequentemente) 20