P - PowerPoint PPT Presentation

1 / 53
About This Presentation
Title:

P

Description:

Cap tulo 4 Rendimiento – PowerPoint PPT presentation

Number of Views:70
Avg rating:3.0/5.0
Slides: 54
Provided by: TodA176
Category:
Tags: pipeline | sparc

less

Transcript and Presenter's Notes

Title: P


1
Capítulo 4Rendimiento

2
Rendimiento
  • Relación entre el producto o el resultado
    obtenido y los medios utilizados.
  • (Tomado del diccionario de la Real Academia
    Española)

3
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.).

4
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.

5
Rendimiento (Performance)
  • 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?

6
Cuál de estos aviones tiene mejor rendimiento?
?
Avión Pasajeros Rango
(mi) Velocidad (mph) Boeing
777 375 4630 610 Boeing 747 470 4150 610 BAC/Sud
Concorde 132 4000 1350 Douglas DC-8-50 146 8720 54
4
  • 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?

7
Definición de rendimiento
8
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.

9
Rendimiento de un computador tiempo, tiempo,
tiempo
  • 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ÓN
  • Si disminuimos el tiempo de respuesta mejoramos
    la cantidad de trabajo por unidad de tiempo

10
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.

11
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.

12
Tiempo de ejecución
  • 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)

13
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

14
Ejemplo
  • Algunos sistemas operativos suministran
    información referente al tiempo de CPU.

15
Ejemplo
16
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

17
Definición de Rendimiento
  • 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

18
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?

19
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.

20
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)

21
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

22
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

23
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.

24
Ejemplo
  • 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?

25
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

26
Cómo se mejora el rendimiento?
  • 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.

27
Cuántos ciclos requiere el programa?
  • Si asumimos que
  • de ciclos de instrucciones

tiempo
Este supuesto es incorrecto. Las instrucciones
tienen tiempos diferentes en diferentes
máquinas. PORQUE Recuerde estas son líneas de
instrucciones
28
Diferentes número de ciclos para diferentes
instrucciones
tiempo
  • 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.

29
Ahora que entendemos los ciclos
  • 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

30
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.

31
CPI Ejemplo
  • 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?

32
SOLUCION
  • MAQUINA B
  • CPI1.2
  • CLOCKSCPU1.2I
  • CPUTIME1.2I2
  • CPUTIME2.4I
  • MAQUINA A
  • CPI2.0
  • CLOCKSCPU2.0I
  • CPUTIME2.0I1
  • CPUTIME2.0I

CONCLUSION La máquina A es 1.2 veces más rápida
que la B
33
de instrucciones (Ejemplo)
  • 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?

34
SOLUCIÓN
  • SECUENCIA 1
  • CPUciclos reloj 21122310 ciclos
  • SECUENCIA 2
  • CPUciclos reloj 4112139 ciclos

CONCLUSION Este 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.
35
ECUACION BASICA DEL RENDIMIENTO
36
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
37
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

38
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.

39
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.

40
Benchmarks
  • 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.

41
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.

42
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.

43
SPEC 95
44
Pruebas
  • Para procesadores
  • Ejemplo

45
Ley de Amdahl
  • 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?

46
Ejemplo
  • 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?

47
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.

48
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.

49
Ejemplo
  • 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?

50
COMPILADOR 1
  • Utilizando el modelo de ciclos de reloj del CPU
  • CPU CICLOS DE RELOJ (511213)10910109
  • El tiempo de ejecución para el compilador es
  • Aplicando el modelo MIPS

51
COMPILADOR 2
  • Utilizando el modelo de ciclos de reloj del CPU
  • CPU CICLOS DE RELOJ (1011213)10915109
  • El tiempo de ejecución para el compilador es
  • Aplicando el modelo MIPS

52
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.

53
Recuerde
  • 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
Write a Comment
User Comments (0)
About PowerShow.com