jueves, 10 de mayo de 2012

[DISTRIBUIDOS Y PARALELOS] Benchmarks

Un benchmark es un conjunto de procedimientos para evaluar el rendimiento de una computadora. Hay cuatro categorías generales de pruebas de comparación:
  • Pruebas aplicaciones-base (application-based) las ejecuta y las cronometra.
  • Pruebas playback (playback test), las cuales usan llamadas al sistema durante actividades especificas de una aplicación(Ej.: Llamados a gráficos o uso del disco) y las ejecuta aisladamente.
  • Prueba sintética (synthetic test) , la cual enlaza actividades de la aplicación en subsistemas específicos.
  • Prueba de inspección (inspection tests), la cual no intenta imitar la actividad de la aplicación, sino que las ejecuta directamente en los subsistemas específicos.
Los test de aplicaciones base entregan la mejor forma de medir el rendimiento completo de el sistema en el mundo real.

Donde sea factible la tecnología playback le da la manera mas real de medir subsistemas individuales en aislación.

Los test Synthetic continúan en el estado de medición del rendimiento es por eso que winbench usa las pruebas de procesadores.

Los test de inspección tienen su lugar verificando el comportamiento libre de fallas y midiendo rendimiento operación por operación.
Los benchmark tienen las siguientes funcionalidades:
  • Comprobar si las especificaciones de los componentes están dentro del margen propio del mismo
  • Maximizar el rendimiento con un presupuesto dado
  • Minimizar costos manteniendo un nivel maximo de rendimiento
  • Obtener la mejor relación costo/beneficio (con un presupuesto o unas exigencias dadas)

Tipos de benchmark

Sintéticos vs Aplicaciones
  • Sintéticos: están especialmente diseñadas para medir el rendimiento de un componente individual de un ordenador, normalmente llevando el componente escogido a su máxima capacidad.
  • Aplicaciones: herramientas basadas en aplicaciones reales, simulan una carga de trabajo para medir el comportamiento global del equipo.

Bajo nivel vs Alto nivel
  • Test de Bajo nivel: Miden directamente el rendimiento de los componentes Ejemplo: el reloj de la CPU, los tiempos de la DRAM y de la caché SRAM, tiempo de acceso medio al disco duro, latencia, tiempo de cambio de pista, etc.
  • Test de Alto nivel: Están más enfocados a medir el rendimiento de la combinación componente/controlador/SO de un aspecto específico del sistema, como por ejemplo el rendimiento de E/S con ficheros, o el rendimiento de una determinada combinación de componentes/controlador/SO/aplicación.

Dhrystone
Dhrystone es una medida de rendimiento de la CPU en entero, expresado en Millones de instrucciones por segundo(MIPS).

El Dhrystone benchmark es ampliamente usado en la industria de las computadoras como una medida de rendimiento. El Dhrystone es un benchmark sintético, diseñado para contener ejemplos representativos de las operaciones normalmente requeridas por las aplicaciones. Estas no calculan el resultado de ningún tipo, pero hacen enlaces de complicadas secuencias de instrucciones usadas por las aplicaciones.

El Dhrystone estándar , fue originalmente diseñado para un único ambiente (single-threaded), manteniendo alguno de sus datos en variables estáticas globales. El resultado del Dhrystone es determinado por el tiempo que toma la medición para ejecutar esta secuencia de instrucciones .

Dhrystone no tiene suficiente código de programa o acceso suficiente a las locaciones de memoria para simular la actividad de la mayoría de los programas reales. Su lugar de trabajo de código y datos puede generalmente ser mantenido en el cache de la CPU, con lo cual resulta con un alto rendimiento.

Whetstone

Whetstone es una medida de rendimiento de la CPU en punto flotante, expresado en Millones de operaciones de punto flotante por segundo (MFLOPS).

El Whetstone benchmark es ampliamente usado en la industria de la computación como una medida de rendimiento.

El Whetstone estándar, fue originalmente diseñado para un ambiente único, manteniendo alguno de sus datos en variables estáticas globales .

La aritmética del punto flotante es la mas significativa en programas que requieren FPU . Estos son en su mayoría ingeniería científica, de estadísticas, y programas de ayuda de diseño en computación. Es también un pequeño componente en hoja de cálculo, dibujo y pintado de programas. (Aunque la hoja de calculo trabaja con números también tiene una mejor presentación en pantalla.) Los programas procesadores de texto típicamente no hacen ningún computo en punto flotante. El Whetstone hace mucha aritmética del punto flotante un poco de acceso de memoria, y un poco la aritmética del entero.

Ejemplo

Ahora se muestra un ejemplo de una aplicación de benchmarking, Geekbech (de pago), disponible para varios sistemas operativos. Esta aplicación se centra en medir el rendimiento del CPU, en este caso procesador y memoria. Es importante cerrar todas las aplicaciones para un mejor funcionamiento.

Al correr la aplicación aparece una ventana como la que sigue:


Se selecciona la arquitectura del procesador, por default aparecerá en la arquitectura de 32 bits, que es la versión gratuita, pero lo recomendable es utilizar la de 64 si se dispone de un procesador de este tipo. Se da clic en "Run Benchmarks"

Una vez terminados los benchmarks, Geekbench automáticamente sube los resultados a su página. Los resultados de mi prueba pueden ser vistos desde este link.

El primer benchmark es el de rendimiento de CPU en enteros (Dhrystone):


El segundo benchmark es el de rendimiento de CPU en punto flotante (Whetstone):


El tercer benchmark es el de rendimiento memoria (Memory benchmark):


El cuarto benchmark es el de rendimiento de transmisión (Streaming benchmark):


Otros benchmarks

Aparte de los anteriores, existen otros tipos que se enfocan en la medición y pruebas de otros componentes o ya sea la combinación de estos.

Algunos ejemplos de otros benchmarks son:

  • Consumo de energía
  • Cumplimiento con estándares ambientales, contenido de materiales y manejo del final del ciclo de vida del producto
  • Disipación de calor
  • De Juguete: detectar y medir componentes básicos de un computador
  • Redes
  • Reducción de ruido
  • Trabajo compartido: mide el rendimiento en las modernas tecnologías de distribución de procesos
  • Servidores
  • Soporte técnico

No hay comentarios.:

Publicar un comentario