EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica...

53
Página 1 EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Capítulo 4 Rendimiento

Transcript of EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica...

Page 1: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 1

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Capítulo 4

Rendimiento

Page 2: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 2

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Rendimiento

• Relación entre el producto o el resultado obtenido y los medios utilizados.

(Tomado del diccionario de la Real Academia Española)

Page 3: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 3

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Concepto de Rendimiento• En un contexto empresarial, el concepto

de rendimiento hace referencia al – resultado deseado efectivamente obtenido

por cada unidad que realiza la actividad, donde el término unidad puede referirse a un individuo, un equipo, un departamento o una sección de una organización.

• En agricultura y economía agraria, – rendimiento de la tierra o rendimiento

agrícola es la producción dividida entre la superficie.

– La unidad de medida más utilizada es la tonelada por hectárea (Tm/Ha).

– Un mayor rendimiento indica una mejor calidad de la tierra (por suelo, clima u otra característica física) o una explotación más intensa, en trabajo o en técnicas agrícolas (abonos, regadío, productos fito sanitarios, semillas seleccionadas – transgénicos - etc.).

Page 4: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 4

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Concepto de rendimiento

• En física y en el campo tecnológico, – El rendimiento o la eficiencia de un dispositivo,

máquina, ciclo termodinámico, etc. Expresa el cociente entre:

– La energía obtenida (energía útil) de su funcionamiento y la energía suministrada o consumida por la máquina o el proceso.

– El trabajo obtenido (trabajo útil) de su funcionamiento y el trabajo suministrado o consumido por la máquina o el proceso.

Page 5: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 5

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

• Mide, reporta y resume • Tomar decisiones inteligentes• Es un concepto para comprender la

motivación organizacional • ¿Porqué un hardware es mejor que otros

para diferentes programas?• ¿Cuáles son los factores de hardware más

importantes en el rendimiento del sistema?– Con su respuesta podríamos decir, necesitamos

una máquina nueva o un nuevo sistema operativo

• ¿Cómo el conjunto de instrucciones afecta el rendimiento de la máquina?

Rendimiento (Performance)

Page 6: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 6

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to?

Avión Pasajeros Rango (mi) Velocidad (mph)

Boeing 777 375 4630 610Boeing 747 470 4150 610BAC/Sud Concorde 132 4000 1350Douglas DC-8-50 146 8720 544

• ¿Qué tan rápido es el Concorde comparado con el 747?

• ¿Qué tan grande es un 747 con un Douglas DC-8-50?

• ¿Cuál sería el que tiene mayor rendimiento?

¿Cuál de estos aviones tiene mejor rendimiento?

Page 7: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 7

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Definición de rendimiento

0 100 200 300 400 500

DouglasDC-8-50

BAC/ SudConcorde

Boeing 747

Boeing 777

Passenger Capacity

0 2000 4000 6000 8000 10000

Douglas DC-8-50

BAC/ SudConcorde

Boeing 747

Boeing 777

Cruising Range (miles)

0 500 1000 1500

DouglasDC-8-50

BAC/ SudConcorde

Boeing 747

Boeing 777

Cruising Speed (mph)

0 100000 200000 300000 400000

Douglas DC-8-50

BAC/ SudConcorde

Boeing 747

Boeing 777

Passengers x mph

Page 8: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 8

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Variables involucradas en el rendimiento de un computador

• Tiempo de respuesta– Tiempo que transcurre entre el inicio

y la conclusión de una tarea, también conocido como tiempo de ejecución.

• Throughtput o ancho de banda– Cantidad total de trabajo realizado en

un tiempo dado.

Page 9: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 9

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

• Tiempo de respuesta (latency)Es el tiempo que tarda una tarea en realizarse desde su inicio hasta el final. También se conoce como tiempo de ejecución.

— ¿Cuánto tiempo tarda mi trabajo en correr?— ¿Cuánto tiempo se tarda en ejecutar mi trabajo?— ¿Cuánto tiempo debo esperar en la cola de la base de

datos?

• ThroughputEs la cantidad de trabajo realizado en un tiempo dado.

— ¿Cuántos trabajos puede la máquina correr al mismo tiempo?— ¿Cuál es la razón de ejecución promedio?

— ¿Qué tanto trabajo se ha realizado?

• CONCLUSIÓNSi disminuimos el tiempo de respuesta mejoramos la cantidad de trabajo

por unidad de tiempo

Rendimiento de un computador: tiempo, tiempo, tiempo

Page 10: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 10

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Ejercicio • CASO 1 Si actualizamos la máquina con un nuevo

procesador, ¿qué es lo que incrementamos?

– Mejoramos el tiempo de respuesta por lo tanto mejoramos la cantidad de trabajo

• CASO 2 Si agregamos una nueva máquina a el laboratorio, ¿Qué es lo que incrementamos?

– No se mejora el tiempo de respuesta solo se mejorar la cantidad de trabajo.

– ¿Qué sucede si la demanda de trabajo aumenta?• El trabajo de apila

• CONCLUSION– En los computadores reales, si se cambia el tiempo

de ejecución o el throughput se afectan entre ellos. Son variables que se relacionan entre ellas.

Page 11: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 11

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Rendimiento de un computador• El tiempo es la medida del

rendimiento del computador.• El computador que realiza la

misma tarea en un tiempo menor es el más rápido.

Page 12: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 12

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

• Tiempo de ejecución de un programa se mide en segundos por programa

• Elapsed Time, tiempo de respuesta– Es el tiempo que se tarda en realizar la tarea

• Cuenta todo (accesos a memoria y disco, I/O , etc.)• Un dato de mucha ayuda, pero no siempre se puede

utilizar para comparar. En el caso de multitarea.

• Tiempo de CPU• Es el tiempo que tarda el CPU en realizar una tarea• No se cuenta con I/O o el tiempo en la ejecución de

otros programas.• Se puede dividir en:

– Tiempo que el CPU invierte en el programa (tiempo de usuario de CPU)

– Tiempo de CPU que invierte en el rendimiento de las tareas del sistema operativo (tiempo del sistema de CPU)

Tiempo de ejecución

Page 13: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 13

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Propósito

• Nuestro propósito: Tiempo de CPU del usuario – Tiempo invertido en la ejecución de

las líneas de código que contiene mi programa

Page 14: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 14

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Ejemplo • Algunos sistemas operativos

suministran información referente al tiempo de CPU.

Page 15: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 15

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Ejemplo

Page 16: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 16

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Ejemplo • El comando time –p (pipeline) en Linux

ofrece la siguiente información• Usuario 0.000 seg• Syst 0.010 seg• Real 0.11 seg

• El tiempo de respuesta es: 0.000 + 0.010 = 0.010 seg

• El porcentaje del tiempo de respuesta es:

– 0.01/0.11 = 0.0909 o sea un 9.0%

• CONCLUSION:– Un 91% aproximadamente estuvo esperando

por I/O, corriendo otros programas o ambos

Page 17: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 17

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

• Para algunos programas que corren en la máquina X,

RendimientoX = 1 / Tiempo de ejecuciónX

• "X es “n” veces más rápida que Y"

RendimientoX / RendimientoY = n

Definición de Rendimiento

Page 18: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 18

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

EJEMPLO• Problema:

– Máquina A corre un programa en 10 segundos.

– Máquina B corre el mismo programa en 15 segundos.

• ¿Qué tan rápida es A con respecto a B?

Page 19: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 19

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

SOLUCIÓN• PARA LA MAQUINA A• Rendimiento de A

• PARA LA MAQUINA B

• La relación de rendimiento será:

• O sea la máquina A es 1.5 veces más rápida que la máquina B.

1.010

11Re

ejecución de tiemponA

0666.015

11Re

ejecución de tiemponB

5.110

15

Ade ejecución de tiempoB de ejecución de tiempo

B de ejecución de tiempo1

Ade ejecución de tiempo1

B de orendimient Ade orendimient

n

Page 20: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 20

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Hacer distinción entre

• El rendimiento basado en el tiempo de respuesta (rendimiento del sistema)

• El rendimiento basado en el tiempo de ejecución del CPU (rendimiento del CPU)

Page 21: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 21

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Reloj• Los eventos en el procesador ocurren

bajo la sincronización del reloj.• Los intervalos de tiempo en que

ocurren los eventos se llaman ciclos de reloj (pulsos, pulsos de reloj, reloj, ciclos)

• Con el término períodos de reloj nos referimos a:– El tiempo para un ciclo completo. Por

ejemplo 20 segundos– La razón de reloj. Por ejemplo 500 MHz,

el cual es el inverso del período de reloj

Page 22: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 22

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Ciclos de reloj

• En lugar de utilizar segundos para los tiempos de ejecución, utilizamos ciclos.

• Los pulsos de reloj indican cuando se deben realizar las actividades:

• Tiempo de ciclo = tiempo entre pulsos = segundos por ciclo

• Razón de reloj (frecuencia) = ciclos por segundo (1 Hz. = 1 ciclo/segundo)

• Un reloj de 200 Mhz. Tiene un tiempo de ciclo de:

time

ciclosegundos

programaciclos

programasegundos

segundos nano 5910 610200

1

Page 23: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 23

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Mediciones • Recuerde para medir el rendimiento es

necesario conocer el tiempo de ejecución del CPU

• Los siguientes modelos relacionan el CPU con los pulsos de reloj

• O sea

• CONCLUSIÓN:– Los ingenieros en diseño de hardware pueden

mejorar el rendimiento reduciendo el tiempo de ciclo de reloj o el número de ciclos de reloj requeridos por el programa. Las técnicas para decrementar el número de ciclos de reloj incrementan el tiempo de ciclo del reloj.

relojde ciclo de tiempo el * programa elcorrer para CPU del relojde ciclos programa un de ejecución de tiempo

relojde razónprograma el para CPU del relojde ciclos

programa un de ejecución de tiempo

Page 24: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 24

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

• Nuestro programa favorito corre en 10 segundos en el computador A, el cual tiene un reloj de 400 MHz. Estamos tratando de ayudar a un diseñador de computadoras a desarrollar una máquina B, que corra el programa en 6 segundos. El diseñador puede utilizar una nueva tecnología para incrementar la razón de reloj, pero nos informó que esto podría afectar el resto del diseño del CPU, haciendo que la máquina B requiera de 1.2 veces más que los ciclos de reloj de la máquina A para el mismo programa. ¿Qué relación de reloj debemos decirle al diseñador que utilice?

Ejemplo

Page 25: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 25

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

SOLUCIÓN

• PARA EL PROGRAMA A

• PARA EL PROGRAMA B– Como la máquina B requiere 1.2 veces ciclos de

reloj más que la máquina A entonces:

• CONCLUSIÓN – La máquina B debe correr al doble de la razón de

reloj de la máquina A

RELOJ DE RAZONCICLOSCPU

ejecuciónT

610*4000610*400*seg 10CICLOS CPUMHz 400

CICLOSCPUSeg 10

MHz 800 seg 6

)10*(4000 1.2XMHz

MHzX )10*(4000 1.2

Seg 666

Page 26: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 26

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

• Entonces para mejorar el rendimiento (conservando el resto igual) se podría :

_______ El número de ciclos requeridos por el programa, o_______ El tiempo de ciclo del reloj _______ La razón del reloj.

¿Cómo se mejora el rendimiento?

ciclossegundos

programaciclos

programasegundos

Page 27: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 27

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

• Si asumimos que: # de ciclos = # de

instrucciones

Este supuesto es incorrecto.Las instrucciones tienen tiempos diferentes en diferentes máquinas.

PORQUE: Recuerde estas son líneas de instrucciones

tiempo

I In

stru

cció

n

II I

nstr

ucci

ón

III

Inst

rucc

ión

IV I

nstr

ucci

ón

V I

nstr

ucci

ón

VI

Inst

rucc

ión

...

¿Cuántos ciclos requiere el programa?

Page 28: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 28

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

• La multiplicación toma más tiempo que la suma.

• Las operaciones en punto flotante toman más tiempo que las

enteras.

• El acceso a memoria que el acceso a registros

• ASPECTO IMPORTANTE:

• Cambiar el tiempo de ciclo algunas veces cambia el número de ciclos

requeridos para varias instrucciones.

tiempo

Diferentes número de ciclos para diferentes instrucciones

Page 29: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 29

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

• Un programa dado requiere

– Un número de instrucciones (instrucciones máquina)

– Algún número de ciclos

– Algún número de segundos

• Tenemos un vocabulario que nos relaciona estas cantidades:

– Tiempo de ciclo (segundos por ciclo)

– Relación de reloj (ciclos por segundo)

– CPI (ciclos por instrucción)

• Es el número de promedio de ciclos de reloj que cada instrucción tarda

en ejecutarse

• Las aplicaciones intensivas en punto flotante podrían tener un alto CPI

– MIPS (Millions of Instructions Per Second)

para un programa esto podría ser alto si se utilizan instrucciones simples

Ahora que entendemos los ciclos

Page 30: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 30

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Rendimiento • El rendimiento se determina utilizando

el tiempo de ejecución• ¿Cualquiera de las otras variables

igual rendimiento?– # de ciclos para ejecutar el programa?– # de instrucciones en el programa?– # de ciclos por segundo?– # promedio de ciclos por instrucción?– # promedio de instrucciones por segundo?

• Error: pensar que una variable es significativa en el rendimiento cuando en realidad no lo es.

Page 31: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 31

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

• Suponga que tenemos dos implementaciones de la misma arquitectura del conjunto de instrucciones (ISA).

Para un programa,

Máquina A tiene un tiempo de ciclo de reloj de 1 ns. y un CPI de 2.0

Máquina B tiene un tiempo de ciclo de reloj de 2 ns. y un CPI de 1.2

¿Cuál máquina es más rápida ejecutando ese programa, y que tan rápida?

• Si las dos máquina tienen el mismo ISA, ¿Cuál de las variables (relación de reloj, CIP, tiempo de ejecución, # de instrucciones, MIPS) podrían ser siempre identicas?

CPI Ejemplo

Page 32: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 32

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

SOLUCION

MAQUINA A• CPI=2.0

• CLOCKSCPU=2.0*I

• CPUTIME=2.0*I*1

• CPUTIME=2.0*I

MAQUINA B

•CPI=1.2

•CLOCKSCPU=1.2*I

•CPUTIME=1.2*I*2

•CPUTIME=2.4*I

CONCLUSION:

La máquina A es 1.2 veces más rápida que la B

2.1*0.2

*4.2 I

I

Aejecución de tiempoB ejecución tiempo

B CPU orendimientACPU orendimient

Page 33: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 33

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

• Un diseñador de un compilador trata de decidir entre dos secuencias de código para una máquina en particular. Basados en la la implementación del hardware, hay tres diferentes tipos de instrucciones: Clase A, Clase B, Clase C y requieren de un, dos y tres ciclos respectivamente.

• La primera secuencia de código tiene 5 instrucciones: 2 de la Clase A, 1 de la B y 2 de la C.

• La segunda secuencia tiene 6 instrucciones: 4 de la Clase A, 1 de la B y 1 de la C.

• ¿Cuál secuencia es más rápida? ¿Qué tan rápida?• ¿Cuál es el CPI para cada una de las secuencias?

# de instrucciones (Ejemplo)

Page 34: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 34

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

SOLUCIÓNSECUENCIA 1

CPUciclos reloj =2*1+1*2+2*3=10 ciclos

nesinstruccio#

CPUCPI jciclosrelo

2nesinstruccio 5

ciclos 10CPI

SECUENCIA 2CPUciclos reloj =4*1+1*2+1*3=9 ciclos

nesinstruccio#

CPUCPI jciclosrelo

1.5nesinstruccio 6

ciclos 9CPI

CONCLUSIONEste ejemplo muestra un peligro si solo se utiliza un factor (número de instrucciones) para el cálculo del rendimiento. Cuando se comparan dos máquinas, debe tomarse en cuenta los tres componentes, los cuales se combinan para calcular el tiempo de ejecución. Si alguno de los factores son idénticos, como la razón de reloj (como en el ejemplo anterior), el rendimiento puede determinarse comparando los factores no idénticos. Como el CPI varía por la mezcla de instrucciones el número de instrucciones y el CPI deben compararse, aunque las razones de reloj sean idénticas.

Page 35: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 35

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

ECUACION BASICA DEL RENDIMIENTO

relojdel ciclo de Tiempo*CPI*nesInstruccio#TiempoCPU

relojde razónCPI*nesInstruccio de #

tiempoCPU

Page 36: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 36

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

COMPONENTES

COMPONENTES DEL RENDIMIENTO

UNIDADES

Tiempo de CPU en ejecución de un programa

Segundos por programa

Número de instrucciones

Instrucciones ejecutadas por el programa

CPI (Ciclos de reloj por Instrucción)

Valor promedio de los ciclos de reloj por instrucción

Tiempo de ciclo del reloj

Segundos por ciclo de reloj

Page 37: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 37

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

RESUMEN

• La única medida en el rendimiento es el tiempo.

• Si se reduce el conjunto de instrucciones nos conduciría a una arquitectura con un tiempo de ciclo menor que nos mejorará la cantidad de instrucciones

relojde ciclossegundos

*nesinstruccio

relojde ciclos*

programasnesinstruccio

tiempo

Page 38: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 38

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

¿Cómo se pueden determinar los valores de estos factores en la

ecuación general del rendimiento?• Se puede medir el tiempo de ejecución de

CPU de un programa.• El tiempo de ciclo del reloj, el cual aparece

en las hojas de datos de la máquina• El número de instrucciones y CPI pueden ser

un poco difíciles de obtener.• Se puede utilizar un programa para medir la

cantidad de instrucciones• Recuerde que la cantidad de instrucciones

depende de la arquitectura de la máquina.

Page 39: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 39

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Cálculo de los ciclos de reloj• Los ciclos de reloj del CPU se pueden

calcular como:

• Donde :Ci = es el número de instrucciones ejecutadas de la clase i

CPIi = número promedio de ciclos por el tipo de instrucción

n = cantidad de tipos de instrucciones

• RECUERDE• El CPI de un programa depende del número de ciclos de

cada tipo de instrucción y de la frecuencia de cada tipo de instrucción en el programa que se ejecuta.

n

i

ii CCPI1

)*( relojde ciclosCPU

Page 40: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 40

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

• El rendimiento es mejor determinarlo corriendo una aplicación real.– Utilice programas típicos para sobre carga esperada.– Una clase de aplicaciones esperada como:

compiladores/editores, aplicaciones científicas, gráficos, etc.

• Pequeños rendimientos – Para arquitectos e ingenieros– Fácil de estandarizar– Puede ser un abuso

• SPEC (System Performance Evaluation Cooperative)– Las compañías tienen gran credibilidad en un

conjunto de programas reales y de entradas.– Puede seguir siendo un abuso (otra pulga de Intel)– Es un indicador de rendimiento y tecnología de

compiladores.

Benchmarks

Page 41: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 41

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

¿Qué es SPEC?• SPEC es el acrónico de “

Standard Performance Evaluation Corporation” • Una organización sin fines de lucro compuesta

por fabricantes de computadores, integradores de sistemas, universidades, centros de investigación, editoriales y consultores con el objetivo de establecer, mantener y estandarizar un conjunto de pruebas para los computadores.

• Ningún conjunto de pruebas puede caracterizar el rendimiento completo del sistema.

• SPEC cree que la comunidad de usuarios se puede ver beneficiada de una serie objetiva de pruebas que pueden servir como punto de referencia.

Page 42: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 42

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

¿Qué mide SPEC CPU2000?• SPEC CPU2000 se concentra en medir el rendimiento

intensivo de los computadores, las pruebas se especializan en el rendimiento de: – El procesador del computador (CPU), – La arquitectura de la memoria – El compilador

• Es importante recordar que la contribución de los dos últimos componentes, pues el rendimiento es más que solo el microprocesador.

• SPEC CPU2000 esta compuesto por dos componentes que se especializan en dos tipos diferentes para el cálculo intensivo del rendimiento del computador:– CINT2000 para medir y comparar el rendimiento entero e

intensivo del computador. – CFP2000 para medir y comparar el rendimiento intensivo

en punto flotante del computador.

Page 43: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 43

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

SPEC ‘95Benchmark Description

go Artificial intelligence; plays the game of Gom88ksim Motorola 88k chip simulator; runs test programgcc The Gnu C compiler generating SPARC codecompress Compresses and decompresses file in memoryli Lisp interpreterijpeg Graphic compression and decompressionperl Manipulates strings and prime numbers in the special-purpose programming language Perlvortex A database program

tomcatv A mesh generation programswim Shallow water model with 513 x 513 gridsu2cor quantum physics; Monte Carlo simulationhydro2d Astrophysics; Hydrodynamic Naiver Stokes equationsmgrid Multigrid solver in 3-D potential fieldapplu Parabolic/elliptic partial differential equationstrub3d Simulates isotropic, homogeneous turbulence in a cubeapsi Solves problems regarding temperature, wind velocity, and distribution of pollutantfpppp Quantum chemistrywave5 Plasma physics; electromagnetic particle simulation

Page 44: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 44

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

Pruebas

• Para procesadores• Ejemplo

Page 45: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 45

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

• EJEMPLO:– Suponga que un programa corre en

100 segundos en una máquina con responsabilidades de multiplicación durante 80 segundos de ese tiempo.

– ¿Cuánto debemos de mejorar la velocidad de multiplicación si queremos que el programa corra cuatro veces más rápido?

Ley de Amdahl

mejoras de cantidad

afectado ejecución tiempoafectar sinejec tiempomejora antes ejecución tiempo

Page 46: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 46

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

• Suponga que reforzamos la máquina implementando instrucciones de punto flotante que hacen la máquina cinco veces más rápida. Si el tiempo de ejecución de algunas pruebas antes de la implementación del punto flotante es de 10 segundos, ¿Cuál sería la velocidad final si la mitad de eso 10 segundos se invierten en la ejecución de instrucciones de punto flotante?.

• Andamos en la búsqueda de una prueba que muestre la unidad de punto flotante de la sección anterior, y se quieren realizar pruebas para mostrar su velocidad de 3. una prueba que se esta considerando corre por 100 segundos con el hardware de la máquina vieja. ¿Cuánto del tiempo de ejecución deben de consumir las instrucciones de punto flotante, en este programa para cumplir con las especificaciones?

Ejemplo

Page 47: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 47

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

MIPS• Es el acrónico para million instructions per second. • Es un viejo método para medir la velocidad y la potencia de un

computador.• MIPS mide el número de instrucciones máquina que un

computador puede ejecutar en un segundo.• No hay un método estándar para medir los MIPS ya que hay

instrucciones que requieren más o menos tiempo que otras para ser ejecutadas.

• Adicionalmente, MIPS se refiere solo a la velocidad del procesador, mientras que las aplicaciones reales son limitadas por otros factores como la velocidad de los periféricos de entrada salida.

• Una máquina con un alto MIPS, no necesariamente corre una aplicación particular más rápido que una máquina con un bajo MIPS.

• Por estas razones las mediciones MIPS se dejaron de utilizar. • Olvidándose de estos problemas las mediciones MIPS nos dan

una idea general de la velocidad del computador.• El computador IBM PC/XT (basado en el procesador (8088/86),

presenta un MIPS de ¼, mientras que un PC basado en Pentium corre a más de 100 MIPS.

Page 48: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 48

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

MIPS COMO METODO DE MEDICION

• Es una relación ejecución de instrucciones.• Especifica el rendimiento en forma inversa al

tiempo de ejecución.• Las máquinas rápidas tienen un alto MIPS.• Los problemas son:

– No toma en cuenta las capacidades de las instrucciones. (No se pueden comparar máquinas con diferente conjunto de instrucciones)

– El valor del MIPS varía entre programas en el mismo computador. (No hay una calificación para todos los programas)

– MIPS puede variar inversamente con el rendimiento.

610*ejecución de tiemponesinstruccio de número

MIPS

Page 49: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 49

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

• Dos compiladores diferentes se están probando en una máquina de 100 MHz. Con tres tipos diferentes de instrucciones: Clase A, Clase B y Clase C, las cuales requieren de uno, dos y tres ciclos respectivamente. Ambos compiladores son utilizados para generar código para una gran pieza de software.

• El código del primer compilador utiliza 5 millones de instrucciones clase A, 1 millón de la clase B, y un millón de la clase C.

• El código del segundo compilador utiliza 10 millones de instrucciones de la clase A, 1 millón de la clase B y 1 millón de la clase C.

• ¿Cuál secuencia es más rápida de acuerdo a MIPS?• ¿Cuál secuencia podría ser más rápida de acuerdo

al tiempo de ejecución?

Ejemplo

Page 50: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 50

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

COMPILADOR 1 • Utilizando el modelo de ciclos de reloj del CPU

CPU CICLOS DE RELOJ= (5*1+1*2+1*3)*109=10*109

• El tiempo de ejecución para el compilador es:

• Aplicando el modelo MIPS:

segundos 2010*500

10*10Tiempo

6

9

ejecución

35010*20

10*1)1(5MIPS

6

9

Page 51: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 51

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

COMPILADOR 2 • Utilizando el modelo de ciclos de reloj del CPU

CPU CICLOS DE RELOJ= (10*1+1*2+1*3)*109=15*109

• El tiempo de ejecución para el compilador es:

• Aplicando el modelo MIPS:

segundos 3010*500

10*15Tiempo

6

9

ejecución

40010*30

10*1)1(10MIPS

6

9

Page 52: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 52

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

CONCLUSION

• El código del compilador 2 tiene un MIPS mayor.

• El código del compilador 1 corre más rápido.

• Este es un ejemplo donde el método MIPS nos da una visión equivocada de la máquina, aunque se comparen dos versiones del mismo programa en la misma máquina.

Page 53: EL - 3310 Sistemas Digitales Ing. José Alberto Díaz García Escuela de Ingeniería Electrónica Rendimiento Página 1 Capítulo 4 Rendimiento.

Página 53

EL - 3310SistemasDigitales

Ing. José Alberto Díaz

García

Escuela de Ingeniería ElectrónicaR

en

dim

ien

to

• El rendimiento es específico para programas

particulares – El tiempo total de ejecución es un resumen consistente

del rendimiento.

• Para una arquitectura dada el incremento en el

rendimiento está dado por: – Incrementos en la razón de reloj (sin efectos colaterales

en el CPI)– Mejoras en la organización del procesador para lograr

un CPI bajo. – El compilador mejora bajos CPI y o cuenta de

instrucciones.

• Error: tener la expectativa en las mejoras de un

aspecto del rendimiento de la máquina creyendo que

afecta el rendimiento total

Recuerde