ISI374_20112-c07-09ago2011.pdf
-
Upload
jose-hernadez -
Category
Documents
-
view
2 -
download
0
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