lunes, 17 de septiembre de 2012

Rendimiento de un computador

Medidas del rendimiento de un computador(resumen para leer el articulo completo revisar la fuente)
Cuando se quieren comparar diferentes procesadores es necesario establecer el criterio de
medida que permita cuantificar los resultados de la comparación. En este sentido existen dos
conceptos que conviene aclarar previamente: la unidad de medida y el patrón de medida. El
primero se refiere a la métrica utilizada para cuantificar la comparación. Y el segundo a la carga
de trabajo respecto a la que se realiza la comparación.

El tiempo es la unidad de medida


 por excelencia cuando se comparan varios
procesadores, aunque no siempre coincidan los puntos de vista de los diferentes observadores. Así,
el usuario de un procesador puede decir que el procesador A es mejor que el procesador B cuando A
ejecuta su programa en menor tiempo que B. En cambio el responsable de un centro de cálculo
entenderá que A es mejor que B si es capaz de ejecutar mayor número de trabajos por unidad de
tiempo. El primero estará interesado en el tiempo de respuesta (response time) del procesador
mientras que el segundo lo estará en la productividad (throughput). Pero en ambos casos la clave es
el tiempo: el procesador que realiza la misma cantidad de trabajo en el menor tiempo posible será
el más rápido, la diferencia estriba en si medimos una tarea (tiempo de respuesta) o muchas
(productividad).
El patrón de medida más significativo es el conjunto de programas reales que se
ejecutan en los procesadores. Sin embargo aquí surge de nuevo y con más intensidad la diversidad
de puntos de vista. En efecto, el usuario de un editor de texto querrá medir el rendimiento de un
procesador respecto a la eficiencia para ejecutar su programa, que posiblemente no coincida con el


Tiempo de ejecución

El tiempo que tarda un programa en ser ejecutado por un computador puede ser difícil de
medir, debido a los Sistemas Operativos Multitarea y a los dispositivos de E/S, que tienen tiempos
de respuesta que son independientes de la frecuencia de reloj del ordenador. Por ello es necesario
diferenciar entre el tiempo que tarda una CPU en ejecutar el código de un programa, el tiempo que
utiliza el S.O. para realizar sus tareas, y el tiempo necesario para acceder a los dispositivos de E/S.

El tiempo de ejecución de un programa lo dividiremos en las siguientes componentes:

• Tiempo de respuesta

• Tiempo de CPU

A su vez, el tiempo de CPU lo dividimos en:

• Tiempo de CPU utilizado por el usuario.

• Tiempo de CPU utilizado por el S.O.
Tiempo de respuesta Es el tiempo necesario para completar una tarea, incluyendo los accesos
al disco, a la memoria, las actividades de E/S y los gastos del S.O. Es el tiempo que percibe el
usuario.
Tiempo de CPU Es el tiempo que tarda en ejecutarse un programa, sin tener en cuenta el
tiempo de espera debido a la E/S o el tiempo utilizado para ejecutar otros programas. Se divide
en:
Tiempo de CPU utilizado por el usuario. Es el tiempo que la CPU utiliza para ejecutar el
programa del usuario. No se tiene en cuenta el tiempo de espera debido a la E/S o el tiempo
utilizado para ejecutar otros programas
Tiempo de CPU utilizado por el S.O. Es el tiempo que el S.O. emplea para realizar su
gestión interna.

La función time de Unix produce una salida de la forma: 90.7u 12.9s 2:39 65%, donde:

Tiempo de CPU del usuario = 90.7 segundos
Tiempo de CPU utilizado por el sistema = 12.9 segundos
Tiempo de CPU= 90.7 seg.+ 12.9seg = 103.6
Tiempo de respuesta = 2 minutos 39 segundos =159 segundos
Tiempo de CPU = 65% del tiempo de respuesta = 159 segundos*0.65 = 103.6
Tiempo esperando operaciones de E/S y/o el tiempo ejecutando otras tareas 35% del tiempo de
respuesta = 159 segundos*0.35 = 55.6 segundos
El tiempo de respuesta se utiliza como medida del rendimiento del sistema (con el sistema no
cargado), mientras que el rendimiento de la CPU normalmente hace referencia al tiempo de CPU
del usuario sobre un sistema no cargado.

El tiempo de CPU de un programa podemos expresarlo como:

Tiempo_de_CPU = Número_de_ciclos_de_reloj_de_la_ CPU • Tc

donde Tc = Duración_del_ciclo_de_reloj

Tiempo _ de _ CPU

Número _ de _ ciclos _ de _ reloj _ de _ la _ CPU



Patrones de medida (Benchmarks)

  • Modelos analíticos (matemáticos) de la máquina
  • Modelos de simulación (algorítmicos) de la máquina
  • La máquina real
     
 Las dos primeras alternativas se utilizan cuando la máquina no está  disponible. Los modelos analíticos tienen limitado su ámbito de utilización por la dificultad de expresar en forma de ecuaciones matemáticas el  comportamiento detallado de la máquina y su carga de trabajo. Se utilizan en fases muy tempranas de diseño para realizar estimaciones generales del rendimiento.
Los modelos de simulación pueden construirse con mayor precisión, recogiendo especificaciones detalladas de diseño. Sin embargo, estos modelos requieren una gran capacidad computacional cuando se incorporan todos los componentes básicos de la máquina.

Clasificación general

En función del ámbito de aplicación que representan :

  • Enteros: aplicaciones en las que domina la aritmética entera, incluyendo procedimientos de búsqueda, operaciones lógicas, etc. Por ejemplo, SPECint2000.
  • Punto flotante: aplicaciones intensivas en cálculo numérico con reales. Por ejemplo,SPECfp2000 y LINPACK.
  • Transacciones: aplicaciones en las que dominan las transacciones on-line y off-line sobre bases de datos. Por ejemplo, TPC-C.

En segundo lugar los agruparemos por la naturaleza del programa que implementan:

  • Programas reales: Compiladores, procesadores de texto, etc. Permiten diferentes opciones de ejecución. Con ellos se obtienen las medidas más precisas.
  • Núcleos (Kernels): Trozos de programas reales. Adecuados para analizar rendimientos específicos de las características de una determinada máquina: Linpack, Livermore Loops.
  • Patrones conjunto (benchmarks suits) Conjunto de programas que miden los diferentes modos de funcionamiento de una máquina: SPEC y TPC.
  • Patrones reducidos (toy benchmarks): Programas reducidos (10-100 líneas de código) y de resultado conocido. Son fáciles de introducir y ejecutar en cualquier máquina (Quicksort,...)
  • Patrones sintéticos (synthetic benchmarks): Código artificial no perteneciente a ningún programa de usuario y que se utiliza para determinar perfiles de ejecución. (Whetstone, Dhrystone)
Fuente

Resumen corto del como funciona el rendimiento de un computador:

http://www.uclm.es/profesorado/licesio/Docencia/ETC/15_MedidasRendimiento_itis.pdf


Version Completa si te interesan las formulas y numeros puedes vicitar este link que contiene un pdf muy completo del como se analiza el rendimiento de un computadorç

http://www.fdi.ucm.es/profesor/jjruz/WEB2/Temas/EC4.pdf


No hay comentarios:

Publicar un comentario