Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.



Documenti analoghi
Calcolatori Elettronici A a.a. 2008/2009

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

Valutazione delle Prestazioni

Tutorato 11 dicembre 2015

Corso di Architettura degli Elaboratori

Esempio: aggiungere j

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

Complessità Computazionale

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

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

La Valutazione delle Prestazioni

COMPLEMENTI SULLE LEGGI FINANZIARIE

SISTEMI DI NUMERAZIONE E CODICI

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

Tecniche di Simulazione: Introduzione. N. Del Buono:

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

La memoria - generalità

Dispensa di Informatica I.1

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.

Approccio stratificato

Esercizi di Macroeconomia per il corso di Economia Politica

Più processori uguale più velocità?

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

PROCEDURA INVENTARIO DI MAGAZZINO di FINE ESERCIZIO (dalla versione 3.2.0)

Laboratorio di Informatica

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

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

Vari tipi di computer

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

Sistemi Operativi SCHEDULING DELLA CPU

CPU. Maurizio Palesi

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

RAPPRESENTAZIONE GRAFICA DEGLI ALGORITMI

2. Leggi finanziarie di capitalizzazione

Sistemi Operativi Kernel

4 3 4 = 4 x x x 10 0 aaa

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

Matematica generale CTF

Dimensione di uno Spazio vettoriale

C. P. U. MEMORIA CENTRALE

I sistemi di numerazione

Strumenti e metodi per la redazione della carta del pericolo da fenomeni torrentizi

COSA ACCADE IN CASO DI VERSAMENTO CONTRIBUTIVO IN UN FONDO PENSIONE COMPLEMENTARE. Informazioni di approfondimento

Progetto MICS Abilitazioni Macchine Giornata Nazionale di Formazione Formatori in collaborazione con ANIMA/UCoMESA-AISEM Milano 22 Marzo 2012

Esercizio 1: trading on-line

Informatica. Rappresentazione dei numeri Numerazione binaria

Traccia di soluzione dell esercizio del 25/1/2005

Interesse, sconto, ratei e risconti

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Esercizi su. Funzioni

Gestione del processore e dei processi

Fasi di creazione di un programma

Equivalenza economica

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Alberto Ferrante. Security Association caching of a dedicated IPSec crypto processor: dimensioning the cache and software interface

MESSA IN SCALA DI ALGORITMI DIGITALI

Tempo e rischio Tempo Rischio

PIL : produzione e reddito

Introduzione alla Virtualizzazione

Premessa. Esercitazione. Calcolo del reddito nel Conto del reddito. Calcolo del reddito nel Conto del capitale e nel Conto del reddito

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

La somma. Esempio: Il prodotto. Esempio:

Sistemi di Servizio e Simulazione

Memoria Secondaria o di Massa

Allegato 4 - Esempio di analisi aziende multisito (clusterizzazione o metodo alternativo)

Architettura dei calcolatori II parte Memorie

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

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

Introduzione all'architettura dei Calcolatori

Teoria delle code. Sistemi stazionari: M/M/1 M/M/1/K M/M/S

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

Tassi di cambio e mercati valutari: un approccio di portafoglio

ELABORAZIONE DI DATI TRIDIMENSIONALI - RELAZIONE HOMEWORK 2

Slide Cerbara parte1 5. Le distribuzioni teoriche

Esame di INFORMATICA

SISTEMI DI NUMERAZIONE IL SISTEMA DECIMALE

Utilizzo delle formule in Excel

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

Informatica Generale (Prof. Luca A. Ludovico) Presentazione 5.1 Operazioni aritmetiche nel sistema binario

MService La soluzione per ottimizzare le prestazioni dell impianto

Cos è l ISC (Indicatore Sintetico del Conto Corrente) e cosa sono i Profili tipo d utilizzo

Il modello generale di commercio internazionale

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Esempi di algoritmi. Lezione III

La propagazione delle onde luminose può essere studiata per mezzo delle equazioni di Maxwell. Tuttavia, nella maggior parte dei casi è possibile

Il sistema monetario

Il concetto di valore medio in generale

Architettura del calcolatore

Rappresentazione dei numeri in un calcolatore

Commissione di Massimo Scoperto e Commissione di Mancato Utilizzo: cosa sono e come funzionano.

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

Uso di base delle funzioni in Microsoft Excel

Metodi Frequenziali per il Progetto di Controllori MIMO: Controllori Decentralizzati

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

Real Time Control (RTC): modalità di invio dei dati

Economia Applicata ai sistemi produttivi Lezione II Maria Luisa Venuta 1

3 - Variabili. Programmazione e analisi di dati Modulo A: Programmazione in Java. Paolo Milazzo

Transcript:

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web:http://prometeo.ing.unibs.it/quarella Prof. G. Quarella prof@quarella.net

Prestazioni Si valutano in maniera diversa a seconda dell applicazione d interesse Le grandezze da considerare sono: Tempo di risposta o di esecuzione Throughput Es.: Un processore più veloce migliora il tempo di risposta e il throughput. Aggiungere un processore uguale incrementa il throughput ed eventualmente il tempo di risposta se i lavori da eseguire saturavano il throughput fino a creare code. 2

Desktop computer Tempo di risposta Server Prestazioni Throughput e tempo di risposta Embedded computer Computer Applicazione Vincoli real-time sul tempo di risposta Costo e consumo energetico sono altri due fattori molto importanti nel progetto di un calcolatore. 3

Prestazioni di un applicazione L algoritmo Il linguaggio di programmazione o il compilatore Il sistema operativo Il processore Il sistema I/O e le periferiche 4

Prestazioni e tempo di esecuzione Per una macchina X 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 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 5

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

Tempo di CPU Per quantificare le prestazioni di un calcolatore utilizzeremo il tempo di esecuzione della CPU o tempo di CPU ovvero il tempo speso dalla CPU nell eseguire un determinato programma. Il tempo speso in operazioni di I/O o per eseguire altri programmi non è considerato. Il tempo di risposta percepito dall utente sarà il tempo trascorso nell esecuzione del programma e non il tempo di CPU. 7

Relazioni tra le metriche Ci occuperemo delle prestazioni della CPU e quindi del tempo di esecuzione della CPU Valgono le seguenti 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 8

Cicli di clock della CPU e Cicli di clock per istruzione CPI (clock per istruzione) indica il numero medio di cicli di clock per istruzione, calcolato come la media del numero di cicli di clock che le diverse istruzioni richiedono per essere completate in un programma. Valgono quindi le seguenti relazioni: cicli di clock della CPU numero di istruzioni nel programma = CPI 9

Cicli di clock della CPU e Cicli di clock per istruzione tempo di CPU = numero di istruzioni CPI durata del ciclo di clock o alternativamente tempo di CPU = numero di istruzioni CPI frequenza di clock 10

Esempio Siano date due implementazioni diverse dello stesso set di istruzioni Il calcolatore A ha una durata di ciclo di clock pari a 1 ns e un CPI pari a 2 per un determinato programma Il calcolatore 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 11

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 10 x 10 Trovare i CPI per eseguire il programma su ciascuna macchina T M1 = I M1 x CPI M1 / f M1 = 200 10 CPIM1 10 sec = 200 10 cicli/sec CPI M1 = 10 cicli T M2 = I M2 x CPI M2 / f M2 = 10 10 CPIM2 5 sec = 300 10 cicli/sec CPI M2 = 9,375 cicli ( durata ciclo clock M1 = 1 / (200x10 cicli/sec) = 5 ns durata ciclo clock M2 = 1 / (300x10 cicli/sec) = 3,3 ns ) 12

Un altra equazione per i cicli di clock della CPU È possibile calcolare il numero dei cicli di clock della CPU anche analizzando i diversi tipi di istruzioni e utilizzando per ciascuno il relativo numero di cicli di clock. Si usa in questo caso: cicli di clock della CPU = n i= 1 (CPI i C i ) Dove C i è il numero di istruzioni della classe i che sono state eseguite e CPI i è il numero medio di cicli per le istruzioni della classe i, mentre n è il numero delle classi 13

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 codici Sequenza di Numero di istruzioni per ciascuna classe codici A B C 1 2 1 2 2 4 1 1 Quale sequenza di codici causa l esecuzione del maggior numero di istruzioni? Quale viene eseguita più velocemente? Qual è il CPI per ciascuna delle sequenze? 14

Soluzione Sequenza 1: 2 + 1 + 2 = 5 istruzioni Sequenza 2: 4 + 1 + 1 = 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 + = 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/ = 1,5 15

Esercizio Si considerino due diverse implementazioni, M1 e M2, dello stesso set di istruzioni, cui appartengono 4 diverse classi di istruzioni (A, B, C, D) M1 ha frequenza di clock pari a 500 MHz e il numero medio di cicli di clock per ciascuna classe di istruzioni è dato dalla tabella A M2 ha frequenza di clock pari a 750 MHz e il numero medio di cicli di clock per ciascuna classe di istruzioni è dato dalla tabella B Classe di istruzioni CPI A 1 B 2 C 3 D 4 Classe di istruzioni CPI A 2 B 2 C 4 D 4 Tabella A Tabella B Se il numero di istruzioni di un dato programma è suddiviso in parti uguali fra le classi di istruzioni, di quanto M2 è più veloce di M1? 1

Soluzione Se le istruzioni del programma sono suddivise in parti uguali rispetto alle 4 classi significa che per ogni classe ci sono il 25% delle istruzioni Si ricordi inoltre che: prestazioni = 1 / tempo di esecuzione tempo di esecuzione = (numero istruzioni CPI) / frequenza di clock T T M2 I (25% 1+ 25% 2 + 25% 3 + 25% 4) 500 10 cicli/sec I (25% 2 + 25% 2 + 25% 4 + 25% 4) 750 10 cicli/sec 0,25 + 0.5 + 0.75 + 1 = 1,5 0,5 + 0,5 + 1+ 1 M1 = = Quindi M2 è 1,25 volte più veloce di M1 1,25 17

MIPS I MIPS (milioni di istruzioni al secondo) costituiscono un alternativa al tempo per valutare le prestazioni MIPS = numero di istruzioni tempo di esecuzione 10 I MIPS rappresentano una misura delle istruzioni eseguite Quindi esprimono il concetto di prestazione in modo inverso al tempo di esecuzione: le macchine più veloci hanno un valore più elevato in termini di MIPS Il vantaggio dell uso dei MIPS è dato dal fatto che rappresentano un concetto facile da comprendere: è intuitivo pensare che le macchine più veloci abbiano un valore di MIPS più elevato 18

Esempio di uso dei MIPS 2 Implementazioni di una macchina: Una dotata di una unità per il trattamento dei numeri in virgola mobile (MVM) Una che non possiede questa unità (MSVM) Si consideri un programma con la seguente combinazione di operazioni moltiplicazioni in virgola mobile 10% somme in virgola mobile 15% divisioni in virgola mobile 5% operazioni su interi 70% La macchina MVM richiede il seguente numero di cicli di clock per ciascuna classe di istruzioni moltiplicazioni in virgola mobile somme in virgola mobile 4 divisioni in virgola mobile 20 operazioni su interi 2 La macchina MSVM emula le operazioni in virgola mobile con operazioni fra interi che richiedono 2 cicli di clock. Il numero delle istruzioni per emulare le operazioni in virgola mobile è: moltiplicazioni in virgola mobile 30 somme in virgola mobile 20 divisioni in virgola mobile 50 19

Esempio di uso dei MIPS Entrambe le macchine hanno frequenza di clock pari a 1000 MHz. Trovare il valore dei MIPS delle due macchine. MIPS = numero di istruzioni tempo di esecuzione 10 tempo di esecuzione = I MIPS MVM = 278 I (0,10 + 0,15 4 + 0.05 20 + 0,7 2) 10 1000 10 cicli di clock della CPU frequenza di clock I MIPS MSVM = 54 I (0,10 0 + 0,15 40 + 0.05 100 + 0,7 2) 10 1000 10 20

Problemi nell utilizzo dei MIPS 1. Questa misura non tiene conto delle caratteristiche delle istruzioni e quindi non si possono confrontare macchine con set di istruzioni diversi 2. Nello stesso calcolatore i MIPS variano a seconda del programma 3. I MIPS possono fallire nel dare una reale misura delle prestazioni In conclusione è sempre preferibile usare il tempo di esecuzione come misura di prestazioni 21

Esempio: confronto fra MIPS e tempo di esecuzione come misura delle prestazioni Si consideri una macchina con 3 classi di istruzioni e le seguenti misure di CPI Classe di istruzioni CPI A 1 B 2 C 3 Si supponga di misurare il codice dello stesso programma generato da due diversi compilatori e di ottenere i seguenti dati Codice da Numero di istruzioni (in miliardi) per ciascuna classe di istruzioni A B C Compilatore 1 5 1 1 Compilatore 2 10 1 1 22

Esempio: confronto fra MIPS e tempo di esecuzione come misura delle prestazioni Sia 500 MHz la frequenza di clock della macchina Quale sequenza di codice sarà eseguita più velocemente? Misura con il tempo di esecuzione: cicli di clock della CPU 1 = (5 1+1 2+1 3) 10 9 = 10 10 9 cicli di clock della CPU 2 = (10 1+1 2+1 3) 10 9 = 15 10 9 tempo di esecuzione 1 = cicli di clock della CPU frequenza di clock = 9 10 10 500 10 = 20sec tempo di esecuzione 2 = 9 15 10 500 10 = 30sec 23

Esempio: confronto fra MIPS e tempo di esecuzione come misura delle prestazioni Misura con i MIPS numero di istruzioni MIPS = tempo di esecuzione 10 9 (5 + 1+ 1) 10 MIPS 1 = = 350 20 10 9 (10 + 1+ 1) 10 MIPS 2 = = 400 30 10 Il codice generato dal compilatore 2 ha un valore di MIPS più elevato anche se viene eseguito più lentamente (30 sec contro 20 sec)! 24

Legge di Amdahl Detta anche legge dei rendimenti decrescenti Se si migliora un aspetto/componente di una macchina, il possibile incremento delle prestazioni è limitato dall ammontare dell utilizzo dell aspetto in questione, cioè: Tempo di esecuzione dopo il miglioramento = tempo di esecuzione influenzato dal miglioramento ammontare del miglioramento + tempo di esecuzione non influenzato Questo significa che l aumento delle prestazioni non è in genere proporzionale al miglioramento di una delle componenti della macchina La legge di Amdahl ricorda che l opportunità di operare un miglioramento dipende dal tempo complessivo occupato dall evento: rendere veloce l evento più frequente contribuisce a migliorare le prestazioni molto di più che ottimizzare gli eventi rari. 25

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? Tempo dopo il miglioramento = 5 secondi + 5 secondi 5 prestazioni dopo il miglioramento Speedup = = prestazioni prima del miglioramento tempo prima del miglioramento = tempo dopo il miglioramento 10 Le prestazioni migliorano solo di un fattore 1,7 e non di un fattore 5. = 1,7 = secondi 2

I benchmark Insieme di programmi scelti per misurare le prestazioni Insiemi differenti in base alle differenti classi di applicazioni Misurazioni registrate in un report così come tutti le informazioni necessarie per garantire la riproducibilità del risultato. SPEC (System Performance Evalutation Corporation) 27

Riferimenti Computer Organization and Design The Hardware/Software Interface 3 rd Edition David A. Patterson, John L. Hennessy Capitolo 4 Versione italiana: Struttura e Progetto dei Calcolatori L Interfaccia Hardware-Software 2 a edizione Zanichelli http://en.wikipedia.org/ o http://it.wikipedia.org/ 28