ISI374_20112-c07-09ago2011.pdf

10
1 Arquitectura de Computadores Clase 07: Rendimiento Departamento de Ingeniería de Sistemas Ui id dd A i i Universidadde Antioquia 20112 Arquitectura de Computadores (2011-2) Medida del rendimiento f Desde el punto de vista del comprador h Dado un conjunto de computadores, cuál tiene: ¾ El mejor rendimiento ¾ El menor costo ¾ La mejor relación costo/rendimiento f Desde la perspectiva del diseñador h Ante varias alternativas de diseño, cuál representa: ¾ La mejora de rendimiento más importante ¾ El menor costo ¾ La mejor relación costo/rendimiento E b i 2 f En ambos casos son necesarios h Una referencia para la comparación h Una medida para la evaluación f Nuestro objetivo es conocer cuáles son los efectos y su importancia de diferentes factores de la arquitectura sobre el rendimiento global del sistema (y el costo)

Transcript of ISI374_20112-c07-09ago2011.pdf

1

Arquitectura de ComputadoresClase 07: Rendimiento

Departamento de Ingeniería de SistemasU i id d d  A i iUniversidad de Antioquia

2011‐2

Arquitectura de Computadores (2011-2)

Medida del rendimiento

Desde el punto de vista del compradorDado un conjunto de computadores, cuál tiene:

El mejor rendimientoEl menor costoLa mejor relación costo/rendimiento

Desde la perspectiva del diseñadorAnte varias alternativas de diseño, cuál representa:

La mejora de rendimiento más importanteEl menor costoLa mejor relación costo/rendimiento

E   b       i

2

En ambos casos son necesariosUna referencia para la comparaciónUna medida para la evaluación

Nuestro objetivo es conocer cuáles son los efectos y su importancia de diferentes factores de la arquitectura sobre el rendimiento global del sistema (y el costo)

2

Arquitectura de Computadores (2011-2)

Definición de rendimiento

Boeing 777

Airbus A310

Boeing 777

Airbus A310

0 100 200 300 400 500

Douglas DC-8-50

BAC/Sud Concorde

Boeing 747

Passenger Capacity

0 2000 4000 6000 8000 1E+04

Douglas DC-8-50

BAC/Sud Concorde

Boeing 747

Cruising Range (miles)

Boeing 777

Airbus A310

Boeing 777

Airbus A310

3

0 500 1000 1500

Douglas DC-8-50

BAC/Sud Concorde

Boeing 747

Cruising Speed (mph)

0 100000 200000 300000 400000

Douglas DC-8-50

BAC/Sud Concorde

Boeing 747

Passengers x mph

Arquitectura de Computadores (2011-2)

Tiempo de respuesta y throughput

Tiempo de respuestaTiempo transcurrido desde el inicio de una tarea hasta su culminación (tiempo de ejecución)

Importante para los usuarios individuales

ThroughputCantidad total de trabajo hecha en un tiempo determinado (ancho de banda)

Importante para los encargados de data centers

S   it  dif t   did  d   di i t     j t  d   li i  

4

Se necesitan diferentes medidas de rendimiento y conjuntos de aplicaciones para evaluar los computadores embebidos y de escritorio, los cuales están enfocados en el tiempo de respuesta, y los servidores, los cuales se enfocan en el throughput

3

Arquitectura de Computadores (2011-2)

Rendimiento y tiempo de ejecución

Para maximizar el rendimiento, es necesario minimizar el tiempo de ejecución

RendimientoX = 1 / Tiempo de ejecuciónXe d e toX / e po_de_ejecuc ó X

Si X es n veces más rápido que Y, entonces:

RendimientoX Tiempo_de_ejecuciónY

RendimientoY Tiempo_de_ejecuciónX= n=

5

Arquitectura de Computadores (2011-2)

Medición del tiempo de ejecución

El tiempo es la unidad de medida por excelencia del rendimiento de un computador

El computador que realice la misma cantidad de trabajo en el menor tiempo es el más rápido

Tiempo transcurrido (tiempo de respuesta)Tiempo total para completar una tarea, incluyendo todos los aspectos involucrados

Procesamiento, acceso a memoria, I/O, sistema operativo (SO), inactividad

Determina el rendimiento del sistema

La CPU es un recurso compartidoTiempo de CPU

6

Tiempo consumido por la CPU en el procesamiento de un trabajo dadoDescontando tiempo I/O, tiempo dedicado a otros trabajos

Comprende el tiempo de CPU del programa de usuario y el tiempo de CPU del SORendimiento de la CPU → Tiempo de CPU de usuario

4

Arquitectura de Computadores (2011-2)

Tasa de reloj

Casi todos los computadores emplean un reloj con una frecuencia constante que gobierna la operación del hardware digital

Clock period

Clock (cycles)

Data transferand computation

Update state

Clock period

7

Periodo de reloj: duración de un ciclo de relojEj: 500 ps = 0.5 ns = 500×10–12 s

Frecuencia de reloj (tasa de reloj): ciclos por segundoInverso del periodo de relojEj: 2.0 GHz = 2000 MHz = 2.0×109 Hz

Arquitectura de Computadores (2011-2)

Tiempo de CPU

Tiempo consumido en la ejecución de una aplicación determinada:

Time Cycle ClockCycles Clock CPUTime CPU ×=

El rendimiento se puede mejorar:Reduciendo el número de ciclos de reloj necesarios para ejecutar la aplicaciónReduciendo el tiempo de ciclo de reloj (incrementando la frecuencia de reloj)

RateClockCycles Clock CPU

=

8

El diseñador de hardware normalmente establece un compromiso entre el número de ciclos de reloj necesarios para ejecutar un programa y la frecuencia de reloj

Muchas técnicas que reducen el número de ciclos de reloj también incrementan el tiempo de ciclo

Ej: diseñando instrucciones más complejas para ejecutar el mismo programa pero que toman más tiempo en ejecutarse

5

Arquitectura de Computadores (2011-2)

Tiempo de CPU (Ejemplo)

Un computador A, con una frecuencia de reloj de 1.3 GHz, ejecuta un programa en 2 segundos. Otro computador B ejecuta el mismo programa en 1.6 segundos, pero requiere 1.8 veces más ciclos de reloj que el computador A para 

á fhacerlo. ¿Cuál es la frecuencia de reloj del computador B?

9

Arquitectura de Computadores (2011-2)

El tiempo de ejecución depende del número de instrucciones en el programa:

Número de instrucciones y ciclos por instrucción

nInstructio per CyclesCount nInstructioCycles Clock CPU ×=

Ecuación de rendimiento

Instruction count (IC): Número de instrucciones ejecutadas por un programaDepende del programa, la ISA y el compilador

Rate ClockCPIIC

Time Cycle ClockCPIICTime CPU×

=

××=

p p g , y p

Cycles per instruction (CPI): Número medio de ciclos por instrucciónNúmero medio de ciclos de reloj que toma cada instrucción para ejecutarse

Aunque diferentes instrucciones pueden tomar tiempos diferentesDepende de la ISA y el hardware de la CPUEl CPI es útil para comparar dos implementaciones diferentes de la misma ISA

El conteo de instrucciones para un programa es el mismo

10

6

Arquitectura de Computadores (2011-2)

CPI (Ejemplo)

Los computadores A y B implementan la misma ISA. El computador A tiene un tiempo de ciclo de 250 ps y un CPI de 2.0 para un programa dado. El computador B tiene un tiempo de ciclo de 500 ps y un CPI de 1.2 para el mismo programa  ¿Cuál computador es más rápido y por cuánto?programa. ¿Cuál computador es más rápido y por cuánto?

11

Arquitectura de Computadores (2011-2)

Consideraciones sobre el CPI

Si diferentes tipos de instrucciones toman diferentes ciclos de reloj para ejecutarse:

n

CPI global:

∑=

×=n

1iii )Count nInstructio(CPICycles Clock CPU

∑ ⎟⎠⎞

⎜⎝⎛ ×==

ni

iCount nInstructioCPICycles Clock CPUCPI

12

El CPI global depende del instruction mix (una medida de la frecuencia relativa de cada tipo de instrucción en uno o varios programas)

∑=

⎟⎠

⎜⎝1i

i CountnInstructioCount nInstructio

Frecuencia relativa

7

Arquitectura de Computadores (2011-2)

Consideraciones sobre el CPI (Ejemplo)

Dos secuencias alternativas de código compilado para un computador en particular tienen las siguientes características:

¿Cuál secuencia de código ejecuta el mayor número de instrucciones? ¿Cuál es más rápida?¿Cuál es el CPI global para cada secuencia?

Class A B C

CPI for class 1 2 3

IC in sequence 1 2 1 2

IC in sequence 2 4 1 1

Hardware

Compilador

13

Arquitectura de Computadores (2011-2)

Comentarios sobre el ejemplo anterior

Cuando se comparan dos computadores es necesario observar los tres componentes que combinados ayudan a determinar el tiempo de ejecución:

Número de instrucciones ejecutadasCPITiempo de ciclo de reloj

Si alguno de los factores es igual (como el tiempo de ciclo en el ejemplo anterior) el rendimiento se determina comparando los demás factores

Como el CPI varía con el instruction mix, se deben comparar tanto el CPI como el número de instrucciones, aún cuando el tiempo de ciclo sea el mismo

14

Casi todas las opciones propuestas para sustituir el uso del tiempo como medida de rendimiento han llevado a:

Afirmaciones engañosasResultados distorsionadosInterpretaciones incorrectas

8

Arquitectura de Computadores (2011-2)

Resumen sobre rendimiento

cycle ClockSeconds

nInstructiocycles Clock

ProgramnsInstructioTime CPU ××=

El rendimiento de un programa depende del algoritmo, el lenguaje, el compilador, la arquitectura, el hardware y la tecnología de fabricación. El efecto de cada uno de estos aspectos en los factores de la ecuación de rendimiento es:

Algoritmo:Lenguaje de programación: Compilador: 

afecta el IC, posiblemente el CPIafecta el IC y el CPIafecta el IC y el CPI

15

pISA: Organización del procesador: Tecnología:

yafecta el IC, el CPI y el tiempo de cicloafecta el CPI y el tiempo de cicloafecta el tiempo de ciclo

Arquitectura de Computadores (2011-2)

Speedup

El speedup indica qué tanto más rápida es una máquina después de introducir alguna mejora en ella, con respecto a la versión original:

enhacement after time Executionenhacement withouttime Execution

tenhancemen withoutePerformanctenhancemen after ePerformancSpeedup

=

=

16

9

Arquitectura de Computadores (2011-2)

Speedup (Ejemplo)

Instruction Freq. CPIi Freq x CPIiALU 50% 1

Load 20% 5

0.5

1 0

0.5

0 4

Freq x CPIi new

¿Qué tantomás rápida sería la máquina si el tiempomedio de carga de datos se 

Load 20% 5

Store 10% 3

Branch 20% 2

Σ =

1.0

0.3

0.4

2.2 1.6

0.4

0.3

0.4

redujera a 2 ciclos?

CPU time new = 1.6 x IC x CT   ⇒ 2.2 / 1.6 significa 37.5% más rápida

17

Arquitectura de Computadores (2011-2)

Speedup (Ejemplo)

Instruction Freq. CPIi Freq x CPIiALU 50% 1

Load 20% 5

0.5

1 0

0.5

1 0

Freq x CPIi new

¿Qué tanto más rápida sería la máquina si lográramos que el procesamiento de 

Load 20% 5

Store 10% 3

Branch 20% 2

Σ =

1.0

0.3

0.4

2.2 2.0

1.0

0.3

0.2

un salto tome sólo un ciclo de reloj?

CPU time new = 2.0 x IC x CT   ⇒ 2.2 / 2.0 significa 10% más rápida

18

10

Arquitectura de Computadores (2011-2)

Speedup (Ejemplo)

Instruction Freq. CPIi Freq x CPIiALU 50% 1

Load 20% 5

0.5

1 0

0.25

1 0

Freq x CPIi new

¿Qué tanto más rápida sería la máquina si dos instrucciones ALU se ejecutaran a 

Load 20% 5

Store 10% 3

Branch 20% 2

Σ =

1.0

0.3

0.4

2.2 1.95

1.0

0.3

0.4

la vez?

CPU time new = 1.95 x IC x CT   ⇒ 2.2 / 1.95 significa 12.8% más rápida

19

Arquitectura de Computadores (2011-2)

Computer organization and design. The hardware/software interface, 4th ed., Chapter 1. D. Patterson and J. Hennessy. Morgan Kaufmann PublishersComputer architecture. A quantitative approach, 3rd ed., Chapter 1. J. Hennessy

Lecturas recomendadas

and D. Patterson. Morgan Kaufmann Publishers

20