ESTUDIO DEL RENDIMIENTO ARQUITECTURAS AVANZADAS. - ALIPSO.COM: Monografías, resúmenes, biografias y tesis gratis.
Aprende sobre marketing online, desarrollo de sitios web gratis en Youtube
Suscribite para recibir notificaciones de nuevos videos:
Jueves 28 de Marzo de 2024 |
 

ESTUDIO DEL RENDIMIENTO ARQUITECTURAS AVANZADAS.

Imprimir Recomendar a un amigo Recordarme el recurso

Introducción, Factores que influyen en el rendimiento de un Job, hardware, Software, Contenido del Job, Diseño de la aplicación, Conclusiones, Rendimiento del Sistema, Indicadores del Rendimiento de un Computador, Turnaround Time, Tiempo de cada ciclo (t)

Agregado: 29 de AGOSTO de 2000 (Por ) | Palabras: 2599 | Votar | Sin Votos | Sin comentarios | Agregar Comentario
Categoría: Apuntes y Monografías > Computación > Varios >
Material educativo de Alipso relacionado con ESTUDIO DEL RENDIMIENTO ARQUITECTURAS AVANZADAS
  • Biografia y vida de duques del Infantado: Breve Biografia de duques del Infantado
  • Retencion: convenio aceptando el ejercicio del derecho de retencion.:
  • Ayer y hoy de la Argentina rural. Gritos y susurros del poder ec:

  • Enlaces externos relacionados con ESTUDIO DEL RENDIMIENTO ARQUITECTURAS AVANZADAS

    Estudio del Rendimiento

    Arquitecturas Avanzadas

    Fecha: 20-Dic-99

    Autor: Nuria Baeza García


    1. Introducción________________________________________________________ 3

    2. Factores que influyen en el rendimiento de un Job_________________________ 4

    2.1. Hardware________________________________________________________ 4

    2.2. Software_________________________________________________________ 4

    2.3 Contenido del Job__________________________________________________ 4

    2.4 Diseño de la aplicación______________________________________________ 5

    2.5 Conclusiones______________________________________________________ 5

    3. Rendimiento del Sistema_______________________________________________ 6

    4. Indicadores del Rendimiento de un Computador___________________________ 7

    4.1 Turnaround Time__________________________________________________ 7

    4.2 Tiempo de cada ciclo (t)_____________________________________________ 7

    4.3 Frecuencia de reloj (f)_______________________________________________ 7

    4.4 Total de Instrucciones (Ic)___________________________________________ 7

    4.5 Ciclos por instrucción (CPI)__________________________________________ 7

    4.6 Tiempo de ejecución de programa (Tp)_________________________________ 8

    4.7 Ciclo de memoria (mc)_______________________________________________ 8

    4.8 Componentes del CPI_______________________________________________ 8

    4.9 Relación entre factores de rendimiento y atributos del sistema______________ 8

    4.10 Relación MIPS___________________________________________________ 9

    4.11 THROUGHPUT del sistema (Ws)____________________________________ 9

    4.12 THROUGHPUT de UCP (Wp)_______________________________________ 9

    5. Benchmark_________________________________________________________ 10

    5.1 Ejemplo_________________________________________________________ 10

    Apéndice A. Definición de Unidades de las Fórmulas________________________ 12

    Apéndice B. Ejercicios_________________________________________________ 13

    Problema 1_________________________________________________________ 13

    Problema 2_________________________________________________________ 14

    Problema 3_________________________________________________________ 15


    1. Introducción

    El ordenador ha sido el descubrimiento más importante de la historia, ya que no ha parado de evolucionar desde su aparición. Las razones de este éxito tan espectacular han sido esencialmente dos:

    ü       La ruptura de la barrera entre el programador y el ensamblador.

    ü       La aparición de los sistemas abiertos (open systems), y en particular aquellos basados en el sistema operativo UNIX.

    La tendencia actual es la siguiente:

    ü                  Invención de arquitecturas nuevas cada dos o tres años.

    ü                  Mejora de los compiladores.

    ü                  Mejora de las comunicaciones.

    ü                  La aparición de las máquinas masivamente paralelas.

    Por este motivo, el rendimiento de las máquinas ha experimentado un crecimiento enorme de unos años hasta ahora. En este trabajo se hace un resumen del estudio del rendimiento de los sistemas actuales.


    2. Factores que influyen en el rendimiento de un Job

    El rendimiento de un job depende de los siguientes factores:

    1)      Hardware

    2)      Software

    3)      Contenido del Job

    4)      Diseño de la aplicación

    2.1. Hardware

    El hardware condiciona de manera muy importante en rendimiento escalar y vectorial- Este rendimiento, en general, va a depender del número de procesadores escalares y/o vectoriales y de la potencia del conjunto de instrucciones de la máquina.

    2.2. Software

    El software es también un factor muy importante del rendimiento de un job. Este rendimiento dependerá básicamente de la capacidad de los compiladores vectorizantes, compiladores paralelos y de la biblioteca de subrutinas de que se disponga.

    El compilador es el encargado de cerrar la brecha entre el paralelismo software y hardware. Algunas tareas de paralelización las realizará el compilador (las más complejas) y otras las realizará el propio usuario (programando).

    2.3 Contenido del Job

    El contenido del Job también es un factor importante que influye en su rendimiento.

    ü       La cantidad de operaciones en coma flotante que se realicen es importante, ya que estas son muy costosas debido a que emplean mucho más tiempo de la ALU que las operaciones en coma fija.

    ü       El tanto por ciento de código vectorizable

    ü       El tanto por ciento de código paralelo

    2.4 Diseño de la aplicación

    Es importante que se ajuste al diseño de la máquina y que se organicen los datos.

    2.5 Conclusiones

    Si tenemos un software que no se adapta bien al hardware, el rendimiento del sistema y en particular del job será muy pobre.


    3. Rendimiento del Sistema

    Para hacer un modelo de rendimiento tendríamos que tener en cuenta muchos parámetros, pero esto no es rentable. Por consiguiente nos conformamos con modelos simplificados para la medida del rendimiento de un sistema.

    Para obtener un alto rendimiento del sistema es necesario que haya una sintonía entre la capacidad de la máquina y el comportamiento del programa.

    La capacidad de la máquina es susceptible de mejora con las nuevas tecnologías hardware y software, además de la gestión eficiente de los recursos.

    El comportamiento del programa depende básicamente de los siguiente factores:

    ü    Diseño del algoritmo

    ü    Estructuras de datos

    ü    Eficiencia de los lenguajes

    ü    Conocimientos del programador

    ü    Tecnología de los compiladores

    Las estructuras de datos proporcionan un alto grado de paralelismo y le condicionan. Así mismo, los lenguajes y compiladores son muy importantes en cuenta a eficiencia de los primeros y la inteligencia de los segundos para detectar dentro del código aquellas partes que pueden ser paralelizables. Los conocimientos del programador también son muy importantes ya que junto con el diseño del algoritmo, los desarrollos pueden adaptarse mucho mejor al hardware del sistema.

    El rendimiento de un sistema varía según el programa. Esto lo podemos observar con las siguientes características intrínsecas de la relación entre el sistema y el programa:

    ü    Imposibilidad de alcanzar un rendimiento máximo.

    ü    Resultados de BENCHMARKING ligados a la composición del programa.


    4. Indicadores del Rendimiento de un Computador

    Los indicadores del rendimiento de un computador son una serie de parámetros que conforma una modelo simplificado de la medida del rendimiento de un sistema y son utilizados por los arquitectos de sistemas, los programadores y los constructores de compiladores, para la optimización del código y obtención de una ejecución más eficiente. Dentro de este modelo, estos son los indicadores de rendimiento más utilizados:

    4.1 Turnaround Time

    El tiempo de respuesta. Desde la entrada hasta la salida, por lo que incluye accesos a disco y memoria, compilación, sobrecargas y tiempos de CPU. Es la medida más simple del rendimiento.

    En sistemas multiprogramados no nos vale la medida del rendimiento anterior, ya que la máquina comparte el tiempo, se produce solapamiento E/S del programa con tiempo de CPU de otros programas. Necesitamos otra medida como es el TIEMPO CPU USUARIO.

    4.2 Tiempo de cada ciclo (t)

    El tiempo empleado por cada ciclo. Es la constante de reloj del procesador. Medida en nanosegundos.

    4.3 Frecuencia de reloj (f)

    Es la inversa del tiempo de ciclo. f = 1/t. Medida en Megahertz.

    4.4 Total de Instrucciones (Ic)

    Es el número de instrucciones objeto a ejecutar en un programa.

    4.5 Ciclos por instrucción (CPI)

    Es el número de ciclos que requiere cada instrucción. Normalmente, CPI = CPI medio.

    4.6 Tiempo de ejecución de programa (Tp)

    Es el tiempo que tarda un programa en ejecutarse.

    Tp = Ic * CPI * t = Ic * CPI/f = C/f

    Total de ciclos de reloj en la ejecución de un programa (C)

    C = Ic * CPI

    4.7 Ciclo de memoria (mc)

    Es tiempo que se tarda en completar una referencia a memoria.

    mc = k * t kàlatencia >1

    4.8 Componentes del CPI

    A partir de las nuevas definiciones de referencias a memoria por ciclo y el total de ciclos del procesador, las fórmulas del CPI y del Tp se pueden de la siguiente forma:

          Total de ciclos del procesador (p).

          Referencias a memoria por ciclo (mr).

    CPI = p + mr * k (ciclos/instrucción)

    Tp = Ic * CPI * t = Ic * (p + mr * k) * t (nanosegundos)

    4.9 Relación entre factores de rendimiento y atributos del sistema

    Ic

    p

    mr

    k

    t

    Arquitectura

    X

    x

    Tecnología compilador

    X

    x

    x

    Implantación y control CPU

    x

    x

    Jerarquía memoria

    x

    x

    En este cuadro resumen, se muestra la relación entre los factores del rendimiento (Ic, p, mr, k y t) y algunas características del sistema (arquitectura, tecnología del compilador, implantación y control CPU y jerarquía de la memoria caché).

    4.10 Relación MIPS

    Podemos utilizar un nuevo modelo del rendimiento deducido a partir del parámetro MIPS (Millones de instrucciones por segundo). Es una medida de la velocidad del ordenador, que depende de la frecuencia del reloj (f), del total de instrucciones (Ic), y de los ciclos por instrucción (CPI).

    MIPS = Ic (Tp * 106) = (Ic * f) / (Ic * CPI * 106) = f / (CPI * 106)

    MIPS = f / (C/Ic * 106) = (f * Ic) / (C * 106) (instrucciones/segundo)

    A partir de la definición de MIPS se puede utilizar la siguiente fórmula para el tiempo de CPU:

    Tiempo CPU = Tp = (Ic * 10-6)/MIPS (segundos)

    4.11 THROUGHPUT del sistema (Ws)

    Es la cantidad de trabajo por unidad de tiempo que realiza el sistema. Total de programas (resultados) ejecutados por el sistema en unidad de tiempo.

    Ws (programas/segundo)

    4.12 THROUGHPUT de UCP (Wp)

    Es la cantidad de trabajo de la UCP.

    Wp = f / (Ic * CPI) = (MIPS * CPI * 106)/(Ic * CPI) = (MIPS * 106)/Ic (programas/segundo)


    5. Benchmark

    Un Benchmark es una prueba que mide el rendimiento de un sistema o subsistema en una tarea o conjunto de tareas bien definidas.

    Los Benchmarks se utilizan normalmente para predecir el rendimiento de un sistema desconocido en una tarea o carga de trabajo bien definida o conocida. Pueden ser también utilizados como herramientas de monitorización y diagnóstico.

    Al realizar un benchmark y comparar los resultados con una configuración conocida, potencialmente se puede precisar la causa de un rendimiento pobre. Similarmente, un desarrollador (programador) puede realizar un benchmark después de realizar un cambio que pueda impactar en el rendimiento para determinar la magnitud del mismo.

    Los benchmarks son normalmente usados para asegurar un nivel mínimo de rendimiento en la especificación procurada. Aunque el rendimiento es uno de los factores más importante en una compra, no nos podemos olvidar que es más importante ser capaz de realizar un job correctamente, que no obtener una respuesta errónea en la mitad de tiempo.

    5.1 Ejemplo

    MAQUINA

    RELOJ=f

    RENDIMIENTO

    TIEMPO UCP = Tp

    VAX 11/780

    5 MHz

    1 MIPS

    12x seg

    IBM RS/6000

    25 MHz

    18 MIPS

    x seg

            TIEMPO UCP EN VAX: 12 veces superior

            CODIGOS OBJETO TIENEN DIFERENTES LONGITUDES:

            DIFERENTES ARQUITECTURAS

            DIFERENTES COMPILADORES

            Ic = MIPS * Tp * 106

    VAX Ic = 1*12x*106

    IBM Ic = 18*x*106


    VAX/IBM = 12/18 IBM = VAX 18/12 = 1.5 VAX

    TOTAL INSTRUCCIONES CODIGO OBJETO PROCESADO EN RS/6000 1.5 VECES SUPERIOR AL PROCESADO EN VAX

            CPI = f / (MIPS * 106)

    VAX CPI = 5 / (1*106) = 5 *10-6

    IBM CPI = 25 / (18*106) = 1.39 *10-6

    CONSIDERANDO UN CPI DE 5 PARA VAX. CPI DE RS/6000 ES SOLO DE 1.39

            VAX ES CISC - COMPLEX INSTRUCTION SET COMPUTING

            SI PROCESO OTRO PROGRAMA EL BENCHMARK PUEDE SER DISTINTO


    Apéndice A. Definición de Unidades de las Fórmulas

    ü       t (tiempo de ciclo de reloj): Unidad de tiempo, normalmente nanosegundos/ciclo.

    ü       f (frecuencia de reloj): 1/t, Unidad de frecuencia, normalmente MegaHercios/ciclo

    ü       Ic (Instruction count): Número de instrucciones objeto a ejecutar. Unidad : instrucciones.

    ü       CPI (Ciclos por instrucción): Número de ciclos por instrucción (ordenadas por familia de instrucciones). Unidad : ciclos/instrucción.

    CPI = p + mr*k (ciclos/instrucción)

     


    ü       C : Total de ciclos de reloj de ejecución de un programa. Unidad : ciclos.

    C = Ic*CPI (ciclos)

     


    ü       Tp (Tiempo CPU de ejecución de un programa): Unidad tiempo, normalmente nanosegundos:

    Tp = Ic*CPI*t (tiempo)

    Tp = (Ic*CPI)/f (tiempo)

    Tp = C/f (tiempo)

     


    ü       mc (ciclo de memoria): Kt (K>1), siendo K=latencia. Unidad de tiempo, normalmente nanosegundos/ciclo.

    ü       MIPS (Millones de instrucciones por segundo): Medida instrucciones/segundo.

    MIPS = Ic (Tp * 106) = (Ic * f) / (Ic * CPI * 106) = f / (CPI * 106)

    MIPS = f / (C/Ic * 106) = (f * Ic) / (C * 106) (instrucciones/segundo)

     


    ü       Ws (throughtput del sistema): Medida en programas/segundo.

    ü       Wp (throughtput de la CPU): Medida en programas/segundo.

    Wp = f / (Ic * CPI) = (MIPS * CPI * 106)/(Ic * CPI)

    Wp = (MIPS * 106)/Ic (programas/segundo)

     



    Apéndice B. Ejercicios

    Problema 1

    Un computador A tiene una frecuencia de reloj de 80 MHz. Ejecuta un programa en 15 segundos. Se quiere diseñar otro computador B, para que ejecute el mismo programa en 8 segundos.

    Existe la posibilidad de incrementar la frecuencia de reloj de A, haciendo que B emplee 1.5 veces el total de ciclos de reloj de A, para el mismo programa.

    Se pide calcular la frecuencia de reloj del computador B.

    TpA = 15 segundos. TpB = 8 segundos

    fA = 80 MHz. fB?

    CB = 1.5 CA

    Tp = C/f

    TpA = CA/fA

    CA = TpA*fA = 15 * 80 = 1200 ciclos

    TpB = CB/fB

    Resultado:

    fB = CB/TpB = 1.5 CA / TpB = 1.5 * 1200 / 8 = 225 MHz


    Problema 2

    Tenemos dos arquitecturas A y B con un mismo juego de instrucciones. A tiene un ciclo de reloj de 12 nseg y un CPI de 1.5 ciclos para un determinado programa. B tiene un ciclo de reloj de 7 nseg y un CPI de 3 ciclos para el mismo programa.

    Se pide calcular que arquitectura es más rápida y en cuanto.

    Arquitectura A:

    tA = 12 nseg.

    CPIA = 1.5 ciclos.

    CA = IcA * CPIA = 1.5 IcA

    Arquitectura B:

    tB = 7 nseg.

    CPIB = 3 ciclos.

    CB = IcB * CPIB = 3 IcB

    TpA = CA * t

    TpA = 1.5 IcA * 12 = 18 IcA nseg.

    TpB = CB * t

    TpB = 3 IcB * 7 = 21 IcB nseg.

    TpB > TpA, por tanto RA > RB

    Conclusión:

    LA ARQUITECTURA A ES UN 30% MÁS RÁPIDA QUE LA B


    Problema 3

    Tenemos dos maquina A y B. El reloj de la maquina A es de 50 MHz. Su rendimiento es igual a 100 MIPS y su tiempo de CPU 20x seg. El reloj de B es igual a 100 MHz, su rendimiento es de 130 MIPS y su tiempo CPU igual a 15x seg.

    Se pide calcular Ic de A y B, y la relación entre ellos.

    Se pide calcular el CPI de A y B, y su relación.

    Ic = MIPS * Tp * 106

    IcA = 100 * 20x * 106 = 200x * 107 instrucciones.

    IcB = 130 * 15x * 106 = 195x * 107 instrucciones.

    IcA = 200*x*107 instrucciones

    IcB = 195*x*107 instrucciones

    A = 1.02 B

    Conclusión:

    El número de instrucciones procesadas por A es 1.02 veces superior al número de instrucciones procesadas por B.

    CPI = Tp * f / Ic


    CPIA = 20x * 50 / 200*x*107 = 0.5*10-7

    CPIB = 15x * 100 / 195*x*107 = 7.7 * 10-7

    Conclusión:

    Considerando un CPI de 7.7 para B, el CPI A ES de 0.5


    Votar

    Ingresar una calificación para del 1 al 10, siendo 10 el máximo puntaje.

    Para que la votación no tenga fraude, solo se podrá votar una vez este recurso.

    Comentarios de los usuarios


    Agregar un comentario:


    Nombre y apellido:

    E-Mail:

    Asunto:

    Opinión:



    Aún no hay comentarios para este recurso.
     
    Sobre ALIPSO.COM

    Monografias, Exámenes, Universidades, Terciarios, Carreras, Cursos, Donde Estudiar, Que Estudiar y más: Desde 1999 brindamos a los estudiantes y docentes un lugar para publicar contenido educativo y nutrirse del conocimiento.

    Contacto »
    Contacto

    Teléfono: +54 (011) 3535-7242
    Email:

    Formulario de Contacto Online »