domingo, 9 de septiembre de 2012

BENCHMARK PARA COMPUTADORAS

1. INTRODUCCIÓN.
En la tabla 1 se enumera algunos benchmark para computadoras paralelos. Se especifica en la tabla el dominio de aplicación, estilo de comunicación, tipo y la herramienta en la que están implementados. A continuación se comentan algunos detalles más de estos benchmark:

Tabla1. BenchMark en computadores Paralelos.
Fuente:(Ortega et all, 2005)

  • SPEC HPC2002 [SPEC HPC2002]. Este benchmark ha sido desarrollado por el grupo HPG de SPEC ([HPG Home]). Está basado en aplicaciones de altas prestaciones (HPC) reales y tiene como objetivo la evolución de computadoras de altas prestaciones. Permite avaluar: los procesadores, el sistema de interconexión, los compiladores, la implementación de bibliotecas OpenMP y MPI, y el Sistema de E/S no pone un énfasis excesivo en evaluar componentes tales como unidades de disco, red externa, sistemas operativos o gráficos. Incluye tres áreas de aplicación: procesamiento sísmico (SPECseis), química (SPECchen) y modelado del clima (SPEC). Para los programas de cada área se proporciona dos tamaños de problema: pequeño y medio.
  • SPEC OMP2001 [SPEC OMP2001]. Ha sido desarrollado también por el grupo HPG de SPEC. Con este benchmark se evalúa presentaciones de aplicaciones para SMP programadas con OpenMP: permite evaluar el procesador, el sistema de memoria el sistema operativo y el compilador. Ofrece los programas ya compilado y los códigos fuente, lo que permita analizar las presentaciones de la herramienta de programación con diferentes optimizaciones y las presentaciones de diferentes implementaciones de la herramienta. No pone el acento en evaluar la red externa, las unidades de disco y gráficos. Es una adaptación del SPEC CPU2000 para procesadores, que incluye los programas que se pueden ver en la referencia [Hennin 2000].
  • ScaLAPACK (scalable Linear Algebra PACKage). Comprende un conjunto de rutinas de LAPACK rediseñadas para sistemas MIMD con memoria distribuida. LAPACK es una biblioteca estandarizada de rutinas para resolver sistemas de ecuaciones lineales, problemas de valores propios, problemas de mínimos cuadrados, etc. Incluye también factorización de matrices (LU, Cholesky). LAPACK se puede considerar sucesor de los benchmark LINPACK y EISPACK y esta diseñado para proporcionar alta eficiencia en procesadores vectoriales, estaciones de trabajo superes calares de altas prestaciones y en SMP.
  • SPLASH-2 (Stanford Parallel Applications for Shared Memory). Es un benchmark Para memoria compartida; consta de núcleos, como el calculo de la FFT unidimensional, descomposición LU, y de aplicaciones diseñadas, como simulación de océanos y ray tracing.
  • NPB2 y NPB3 (NAS Parallel Benchmarks). Ambos, NPB2 y NPB3, constan de 5 núcleos y 3 pseudo-aplicaciones diseñadas. NPB2 esta implementado con MPI . MPB3 consta de implementación OpenMP, Jaca y HPF.
  • PARKBENCH (Parallel Kernels and BENCHmarks). Incluye microbechmark, núcleos y pequeñas aplicaciones, Soporta MPI y PVM. Incluye códigos secuenciales para evaluar el procesador, códigos para evaluar la comunicación (incluye ping-pong, barrera) y códigos que implementan operaciones del algebra lineal.
  • TCP Benchmark. EL grupo TCP ha desarrollado un conjunto de benchmarks que evalúan diferentes aplicaciones comerciales de servidores. TPC-C (1992). Analiza procesamiento de transacciones OLTP. Consta de cinco tipos de transacciones:
· Nueva orden: introduce una nueva orden del computador.
· Pago: actualiza el saldo para reflejar un pago.
· Remesa: ordenes de envió (se realiza como una transacción en cola).
· Estado-pedido: recupera el estado del pedido mas reciente del computador.
· Nivel de existencias(stock): control inventario de la base de datos (warchouse).
Las transacciones operan con una base de datos con nueve tablas. Se usa software de base de datos comerciales (SQL de Microsoft, Oracle). Las transacciones actualizan, insertan, borran o abortan. TPC-C simula un entorno de cómputo donde un conjunto de usuarios realizan transacciones con una base de datos. Las transacciones son del tipo indicado mas arriba. Tiene dos índices: transacciones por minuto (rpm) y precio por transacción (coste/rpm). TPC-H y TPC-R evalúan cargas de trabajo de sistemas de soporte de decisiones (DSS). TPC-H soportan modificaciones concurrentes de datos y peticiones improvisadas orientadas al comercio y a la industria. TPC-R permite optimizaciones adicionales basadas en el conocimiento de las peticiones. Se pueden ejecutar considerando un único usuario y considerando múltiples usuarios. TPC-H y TPC-R tiene dos índices: peticiones por minuto y coste por petición. TCP-W evalúa aplicaciones de comercio electrónico, genera transacciones orientadas el comercio. Los índices son: Interacciones Web procesadas por segundo y coste por interacción. Los benchmark TPC no solo incluyen en el precio el coste del hardware, sino también el coste del software (sistema operativo, gestor de base de datos, y en TPC-W, el servidor Web, el servidor de comercio, y cualquier otro software incluido) y tres años de mantenimiento en ambos :(Ortega et all,2005).

2. DESCRIPCIÓN DE LOS BENCHMARK

2.1. BENCHMARK PARA UNIX/LINUX
Benchmark Ackermann
Este programa implementa la denominada Función de Ackermann, definida recursivamente sobre sus dos argumentos enteros. Esta función se ha utilizado ampliamente para comparar la eficiencia de llamada a procedimiento dentro de los lenguajes de tipo Algol. En concreto, el Benchmark utiliza esta función con el primer parámetro igual a 3, y el segundo igual a 6. El programa calcula un número determinado de veces la función de Ackermann. El número de llamadas recursivas que se produce para calcular Ackermann(3,n) fue calculado por Wichmann en 1976, y corresponde al número:
Benchmark Fibonacci
El objetivo que persigue este Benchmark es similar al anterior, y está basado en el cálculo de la sucesión de Fibonacci; hace hincapié en el mecanismo de llamada a procedimiento, facilidad de cálculo de procesador, y por ser recursiva, se producirá un consumo importante de la pila por parte del programa.
Benchmark Float
Este programa es un bucle en el que se realizan multiplicaciones y divisiones en punto flotante. Sirve para ver la capacidad de cálculo del procesador en punto flotante. Con este programa, será determinante la disposición o no de un coprocesador matemático por parte de la máquina en la que se ejecute.
Benchmark Trilog
Se trata de un programa que usa las librerías matemáticas, de forma que repite un número determinado de veces la misma operación, en la que aparecen expresiones trigonométricas, concretamente el seno, coseno, arco tangente y logaritmo. El bucle se hace los suficientemente largo como para hacer insignificante el tiempo que se tarda en ejecutarlo.
Benchmark BenK
Este Benchmark implementa un algoritmo para la trasposición de matrices de bits. Nos sirve para comprobar las facilidades del procesador tanto en el manejo de bits como en el manejo de bucles.
Benchmark Linpack
Este Benchmark, desarrollado por Jack Dongarra, muestra el rendimiento de ordenadores en el rango de sistemas PC domésticos comparándolos con los más eficientes supercomputadores resolviendo un denso sistema de ecuaciones lineales. Desde que esta operación es un componente de multitud de aplicaciones técnicas, el Benchmark Linpack ofrece una visión interior de los niveles de rendimiento que pueden ser aplicadas en aplicaciones reales.
Benchmark Flops
El Benchmark Flops es un programa en C que intenta calcular el número de puntos flotantes (MFLOPS) de un sistema. El programa ofrece una estimación del rendimiento maximizado el uso de variables de registro con una mínima interacción con la memoria principal. Los bucles de ejecución son todos muy pequeños por lo que el programa cabe en la memoria caché.
Benchmark Dhrystone
Este es un programa sintético publicado en 1984 por Reinhold P. Weicker de Siemens-Nixdorf. El programa fue escrito originalmente en Ada y posteriormente traducido a C y Pascal, siendo la versión de C la más utilizada.
El Dhrystone estándar, fue diseñado para ser ejecutado en un único hilo. Para mantener su compatibilidad con sistemas basados en Windows NT, se debe utilizar el Benchmark Wintune, que utiliza una versión modificada del Dhrystone permitiéndole trabajar apropiadamente en múltiples threadas en Windows NT. El Dhrystone se basa en aspectos no numéricos de la distribución de características de lenguajes fuente como sistemas operativos, compiladores, editores, etc. Usa pocos datos en punto flotante, y el tipo de programas que representa tiene pocos bucles. Aunque el programa ofrece los resultados en dhrystones / segundo, nosotros consideraremos únicamente el tiempo que tarda en ejecutarse.
Las principales características del programa son:
<!--[if !supportLists]--> ·Carece de instrucciones en coma flotante en su bucle de medida, y tampoco realiza llamadas al sistema.
<!--[if !supportLists]--> ·Gran parte del tiempo de ejecución se emplea en funciones de manejo de cadenas de caracteres. En algunos casos puede llegar al 40% del tiempo de ejecución.
<!--[if !supportLists]--> · Tiene pocos bucles, con lo que el tiempo de ejecución depende mucho del tamaño de la memoria cache; si es pequeña, hay muchos fallos de acceso a instrucción, pero si es grande el programa puede caber entero, con lo que se accede rápidamente a todas las Instrucciones. Este programa es uno de los más usados como Benchmark, y forma parte de la mayoría de librerías diseñadas con este propósito.
2.2. BENCHMARK PARA WINDOWS
Sisoftware Sandra 2004
Sisoftware Sandra (“System ANalyser, Diagnostic and Reporting Assistan”) es una utilidad de información/diagnóstico de Windows. Ofrece información detallada de multitud de parámetros del sistema.

Wintune
Es un programa gratuito de prueba de diagnóstico y de prueba comparativa para sistemas Windows. Efectúa una serie de pruebas, incluidas pruebas de CPU, memoria, video y velocidad de disco, a la vez que ofrece recomendaciones para mejorar el rendimiento del sistema. Los resultados de las pruebas se guardan en un archivo HTML que ofrece un enlace para agregar los resultados a una base de datos central y compararlos con los de otros equipos similares.

Byte Benchmarks
BYTEmark es un conjunto de pruebas creado por la revista Byte y ejecutada por la propia revista sobre cualquier ordenador. Los programas utilizados son de dominio público y están accesibles desde la página web de Byte.
BYTEmark pretende ser un test estándar para todo tipo de sistemas y por ello consiste en una serie de programas escritos en ANSI C. Las ventajas de este test es que se ha diseñado para que sea escalable, multiplataforma y fácil de usar en ordenadores personales. Se muestran tanto las iteracciones del test así como una relación con respecto a una máquina base (inicialmente un Dell con un Pentium a 90Mhz) (CEESI, 2007).


REFERENCIAS BIBLIOGRÁFICAS
Ortega J., Anguita, M., y Prieto,A.(2005). Arquitectura de Computadores. España: Ed. Paraninfo S.A.
CEESI (2007). BenchMarking. Recuperado de petra.euitio.uniovi.es/asignaturas/ceesi/prac/curso03-04/prac04.pdf



1 comentario:

  1. Gracias por tu aportacion muy completo.. y bien por la fuente !! =)

    ResponderEliminar