INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO
BENCHMARK
INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO
BENCHMARK
© Todos los derec hos de propiedad intelec tual de esta obra pertenec en en exc lusiva a la Universidad
Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproduc c ión, puesta a disposic ión del
públic o y en general c ualquier otra forma de explotac ión de toda o parte de la misma.
La utilizac ión no autorizada de esta obra, así c omo los perjuic ios oc asionados en los derec hos de
propiedad intelec tual e industrial de la Universidad Europea de Madrid, S.L.U., darán lugar al ejerc ic io
de las ac c iones que legalmente le c orrespondan y, en su c aso, a las responsabilidades que de dic ho
ejerc ic io se deriven.
2
INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO
BENCHMARK
Índice
Presentación 4
Definición de benchmark 5
Tipos de benchmark 7
Familia SPEC 9
Comparativa de resultados 10
Evolución de los juegos de instrucciones 11
¿Qué determina el rendimiento? 12
Resumen 13
3
INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO
BENCHMARK
Presentación
Cuando nos enfrentamos a la construcción de una nueva arquitectura de computadores, las
pruebas finales para evaluar si el rendimiento de la nueva máquina es óptimo o no toman una
enorme relevancia, pues estas pruebas determinarán si ha merecido la pena el trabajo realizado
durante aproximadamente 3 años.
Las preguntas claves que debemos hacernos son: ¿Es nuestro computador suficientemente
rápido al ejecutar programas? ¿Respecto a qué comparamos? ¿Cómo evaluamos su
rendimiento? ¿Con qué tipo de programas?
Al final de este tema, habremos aprendido:
El concepto de benchmark.
Los benchmark estándares y su evolución histórica.
A interpretar los resultados reales de benchmark profesionales.
4
INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO
BENCHMARK
Definición de benchmark
Una de las labores más importantes de un arquitecto de computadores, es la de obtener el mayor
rendimiento posible de una máquina reduciendo el coste lo máximo posible. De ahí la importancia
de un buen diseño, y de la capacidad de innovación que tenga la empresa fabricante de
hardware.
Para decidir cómo de bueno es un computador, nos
encontramos con la problemática de cómo medir el
rendimiento de la máquina, pues se debe evaluar el
rendimiento de cada uno de los componentes para
conocer qué partes se pueden mejorar, pero sobre todo
interesa optimizar al máximo el rendimiento de la máquina
en su conjunto. Por este motivo, la medida más fiable es siempre el tiempo de ejecución.
Pero, ¿respecto a qué baremo medimos el tiempo de ejecución? Para asegurar que un sistema
tiene un buen rendimiento, las pruebas deben realizarse con programas reales o programas
similares a los que ejecutará la máquina cuando esté en explotación, comparándose
posteriormente los tiempos resultantes con computadores similares para comprobar si realmente
somos óptimos con respecto al mercado actual.
Para comparar el rendimiento de distintas máquinas usaremos un benchmark.
Un benchmark es un conjunto de programas de prueba o programas reales que sirven
para medir el rendimiento de un componente concreto o de una computadora en su
conjunto, mediante la comparación de los tiempos de ejecución obtenidos de esos
programas de prueba con respecto a otras máquinas similares.
5
INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO
BENCHMARK
En las próximas pantallas, para poder comparar y publicar los resultados obtenidos en cada
prueba, estudiaremos algunos benchmark aceptados como estándares por los mayores
fabricantes de computadores.
6
INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO
BENCHMARK
Tipos de benchmark
Existen distintos tipos de benchmark, dependiendo de las características del computador que
queramos evaluar, y de la sofisticación del benchmark utilizado.
Consisten en pequeños fragmentos de código con entre
10 y 100 líneas de código que se utilizan para medir una
característica concreta del computador.
Programas de juguete o
microbenchmark
Ejemplos: Java Micro Benchmark, Puzzle, Quicksort,
criba de Erastótenes.
Son programas de prueba que simulan programas reales
en carga de trabajo y reparto de instrucciones. Sirven
para medir el rendimiento de componentes concretos o
Benchmark sintéticos de un computador en general.
Ejemplos: Whetstone, Dhrystone.
Consiste en un fragmento de código extraído de un
programa real.
La parte escogida es la más representativa del
Kernel
programa, y por tanto, la parte que más influye en el
rendimiento del sistema para ese software.
7
INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO
BENCHMARK
Son los benchmark más utilizados en la actualidad.
Consisten en programas reales que son ejecutados con
un conjunto de datos reducido para no alargar su
ejecución.
Programas reales
Ejemplo: benchmark de la familia SPEC, clasificados en
SPECint y SPECfp según operen con números enteros
o con números reales (en coma flotante).
Existen numerosos tipos de benchmark para probar
características y componentes específicos de un
computador, como pueden ser benchmark de
entrada/salida, de bases de datos, paralelos
Otros benchmark
Ejemplos de benchmark paralelos: Linpack, Livermoore,
NAS, PARSEC,...
8
INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO
BENCHMARK
Familia SPEC
SPEC (Standard Performance Evaluation Corporation) es una asociación que fue creada por los
mayores fabricantes de computadoras del mundo (IBM, HP, INTEL, SUN,...).
Se creó con el objetivo de definir unos benchmark que consistieran en programas reales y que
pudieran ser utilizados como referentes o estándares para todas las marcas. Los benchmark
SPEC sirven para medir el rendimiento de componentes concretos o de los microprocesadores
en general.
En la actualidad se han convertido en unos de los programas de prueba más utilizados en todo el
mundo.
Los benchmark SPEC han ido evolucionando a lo largo de la historia tal y como se muestra en la
tabla que puedes encontrar a continuación.
9
INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO
BENCHMARK
Comparativa de resultados
En el siguiente gráfico, se reflejan los resultados de rendimiento de algunas computadoras
actuales, al aplicar el benchmark SPEC CINT 2006, en opción de compilado baseline.
Fuente de los datos: <[Link]
Ejemplo de resultados
El sistema con mayor rendimiento de los comparados es el "Acer AT110 F1 (Intel Xeon
E3110)"
Ejemplo de resultados
En el apartado de referencias bibliográficas puedes encontrar ejemplos de resultados.
10
INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO
BENCHMARK
Evolución de los juegos de instrucciones
El rendimiento de los computadores está íntimamente relacionado con el juego de instrucciones.
En el esquema que se muestra a continuación, se describe cuál ha sido la evolución de los
juegos de instrucciones de los computadores. Como se puede observar, al final se impuso la
tecnología RISC (Reduced Instruction Set Computer) sobre las arquitecturas CISC (Complex
Instructuion Set Computer). Las arquitecturas RISC usan instrucciones sencillas y genéricas.
11
INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO
BENCHMARK
¿Qué determina el rendimiento?
Como ya sabemos, el tiempo de ejecución es la única medida fiable para determinar el
rendimiento de un computador. También sabemos que el tiempo de ejecución depende del
período o ciclo de reloj, del número de instrucciones y del CPI medio del juego de instrucciones.
Pero, ¿Qué factores determinan el recuento de instrucciones, el CPU y el ciclo de reloj?
En la siguiente tabla se muestran algunos elementos que influyen en estas medidas a distintos
niveles de abstracción, y por tanto, influyen indirectamente en el tiempo de ejecución.
Intenta averiguar en qué parámetro influye cada elemento antes de mostrar la respuesta:
Fuente de las tablas: IRWIN, MJ (2008)
12
INTRODUCCIÓN Y MEDIDAS DE RENDIMIENTO
BENCHMARK
Resumen
Para poder evaluar el rendimiento de un computador siempre nos fijaremos en el tiempo de
ejecución, pero es necesario saber qué programa elegir para evaluar el rendimiento y respecto a
qué baremo medir los resultados.
Los programas de prueba deben ser programas reales, lo más parecido posibles a los programas
que se ejecutarán en la máquina a evaluar en el futuro. Los resultados del tiempo de ejecución se
compararán con computadores similares.
Para facilitar las tareas de evaluación del rendimiento y comparación de resultados, se utilizan los
programas de prueba o benchmark.
La familia de benchmark SPEC son unos de los benchmark más utilizados en las últimas decadas
hasta la actualidad. El benchmark más actual de esta línea es el SPEC2006, aunque la
organización SPEC ya está trabajando en un nuevo estándar. Hay que distinguir entre programas
de prueba con operaciones enteras SPEC CINT 2006 y programas con números reales SPEC
CFP 2006.
13