Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


rendimiento de procesadores, Apuntes de Ingeniería Infórmatica

Asignatura: IC1, Profesor: , Carrera: Ingeniería Informática, Universidad: UDIMA

Tipo: Apuntes

2016/2017

Subido el 03/07/2017

esteban_rodriguez-9
esteban_rodriguez-9 🇪🇸

5

(1)

2 documentos

1 / 39

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Estructura de Computadores, Facultad de Informática, UCM, Curso 11-12
1
Tema 4: Rendimiento del procesador.
Objetivos:
Introducir los conceptos y criterios que permitan medir de forma cuantitativa el
rendimiento de los procesadores.
Estudiar los diferentes patrones de medida (benchmark).
Analizar de forma cualitativa y con datos reales la influencia que tienen las diferentes
alternativas de diseño, estudiadas en temas anteriores, sobre el rendimiento.
Sintetizar el resultado del anterior análisis en un conjunto de alternativas de diseño que
son determinantes para aumentar el rendimiento del procesador y que se concretan en la
alternativa RISC.
Analizar la forma de explotar al máximo el rendimiento del procesador desde análisis del
programa realizado por el compilador.
Contenido:
1. Medidas del rendimiento de un computador
2.
Patrones de medida (Benchmarks)
3. Influencia en el rendimiento de las alternativas de diseño
4. Influencia de los compiladores de lenguajes de alto nivel
5. Procesadores RISC y CISC
1. Medidas del rendimiento de un computador
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
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27

Vista previa parcial del texto

¡Descarga rendimiento de procesadores y más Apuntes en PDF de Ingeniería Infórmatica solo en Docsity!

Tema 4: Rendimiento del procesador.

Objetivos:  Introducir los conceptos y criterios que permitan medir de forma cuantitativa el rendimiento de los procesadores.  Estudiar los diferentes patrones de medida ( benchmark ).  Analizar de forma cualitativa y con datos reales la influencia que tienen las diferentes alternativas de diseño, estudiadas en temas anteriores, sobre el rendimiento.  Sintetizar el resultado del anterior análisis en un conjunto de alternativas de diseño que son determinantes para aumentar el rendimiento del procesador y que se concretan en la alternativa RISC.  Analizar la forma de explotar al máximo el rendimiento del procesador desde análisis del programa realizado por el compilador.

Contenido:

1. Medidas del rendimiento de un computador

2. Patrones de medida ( Benchmarks )

3. Influencia en el rendimiento de las alternativas de diseño

4. Influencia de los compiladores de lenguajes de alto nivel

5. Procesadores RISC y CISC

1. Medidas del rendimiento de un computador

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

punto de vista del usuario de un programa de diseño gráfico. Fijar de la forma más objetiva posible los patrones o programas respecto a los cuales se mida el rendimiento de un procesador será pues una tarea polémica y siempre cuestionada por la comunidad de interesados en los resultados de la medida.

1.1. 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.  Tiempo de respuesta = 2 minutos 39 segundos =159 segundos  Tiempo de CPU = 65% del tiempo de respuesta = 159 segundos0.65 = 103.  Tiempo esperando operaciones de E/S y/o el tiempo ejecutando otras tareas 35% del tiempo de respuesta = 159 segundos0.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

Fc

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

_ _ 

( )

NI

NI CPI NI

CPI NI

CPI

i

n

i

i

i

n

i

i

 

 

 

 

 

 (^) 

Esta última expresión calcula el CPI multiplicando cada CPIi individual por la fracción de ocurrencias de las instrucciones i en el programa. CPIi debe ser medido, y no calculado a partir de la tabla del manual de referencia, ya que se deben incluir los fallos de caché y otras ineficiencias del sistema de memoria.

Ejemplo

Se consideran 2 alternativas para implementar el salto condicional en un procesador: CPU A : Una instrucción de comparación genera el código de condición, y una de salto bifurca en función del valor de código generado.

CPU B : Una única instrucción de salto que incluye la comparación. En ambos casos la instrucción de salto consume 2 ciclos de reloj, las demás instrucciones consumen 1 ciclo. Se ignoran las pérdidas debidas al sistema de memoria.

En la CPU A, el 20% de las instrucciones ejecutadas son saltos condicionales, y como en esta CPU cada salto es precedido por una comparación, otro 20% de las instrucciones ejecutadas son comparaciones.

Debido a que la CPU A no incluye la comparación en el salto, su ciclo de reloj es un 25% más rápido que el de la CPU B.

Bajo estas condiciones ¿Qué CPU es más rápida?

Solución

80

100

Comparaciones

Saltos

Otras instrucciones

CPU A
CPU B

Tc_B/ Tc_A = 1.25 ==> Tc_B = 1.25 • Tc_A

NI_B = 0.8 • NI_A

Tiempo de CPU_A = NI_A • CPI_A • Tc_A

Tiempo de CPU_B = NI_B • CPI_B • Tc_B

Tiempo de CPU_B = (0. 8 • NI_A ) • CPI_B• ( 1.25 • Tc_ A )

Tiempo de CPU_B = (0.8 • 1.25) • NI_A * CPI_B • Tc_A.

CPI_A = (NI_salto_A /NI_A) •CPI_salto + (NI_resto_A/NI_A) •CPI_resto =

CPI_B = (NI_salto_B /NI_B) •CPI_salto + (NI_resto_B/NI_B) •CPI_resto =

Luego la alternativa de diseño correspondiente a la CPU A sería más rápida. La ganancia de velocidad de la alternativa A sobre la B valdrá:

Tiempo de CPU_A = 1.2 • NI_A • Tc_A.

Tiempo de CPU_B = 1.25 • NI_A • Tc_A

La ganancia de velocidad valdrá:

_1. 0416

  1. 2_

1. 25

TiempodeCPU_A

Tiempo deCPU_B  

1.2. Otros parámetros de rendimiento

 MIPS (Millones de Instrucciones Por Segundo)

6 6 CPI* 106

Fc

CPI* 10 *Tc

Tiempo_de_ejecución 10

NI

MIPS   

6

MIPS* 10

NI

Tiempo _de_ejecución 

 Los MIPS dependen del repertorio de instrucciones, por lo que resulta un parámetro difícil de utilizar para comparar máquinas con diferente repertorio  Varían entre programas ejecutados en el mismo computador  Pueden variar inversamente al rendimiento, como ocurre en máquinas con hardware especial para punto flotante, que emplean menor tiempo que las que no disponen de este hardware y por tanto tienen mejor rendimiento. Sin embargo presentan un menor valor de los MIPS porque ejecutan menor número de instrucciones En definitiva, los MIPS pueden fallar al dar una medida del rendimiento, puesto que no reflejan el tiempo de ejecución. Por esta razón se han venido utilizando los MIPS relativos, que miden cuantas veces más tarda en ejecutarse un programa en la máquina a medir que en una de referencia, que por definición tiene un MIPS (VAX-11/780):

relativos MIPSrefeerenci a

Tiempodeejecuciónenlamáquinaamedir

Tiempodeejecuciónenlamáquinadereferencia

MIPS  

MIPS refeerencia = 1 (MIPS del VAX-11/780)

 MFLOPS (Millones de operaciones en punto FLOtante Por Segundo)

Tiempodeejecución 106

Númerodeoperacionesencomaflotantedeunprograma

MFLOPS

 

mejora

m

global

gv

1 f

1 lim_gv

Es decir, la ganancia de velocidad global se mantiene limitada por una expresión de la fracción fm

gv (^) mejora

1/(1-f (^) m )

gv (^) global

Ejemplo Un disco magnético 10 veces más rápido que en la máquina original. El disco se utiliza sólo el 40% del tiempo de ejecución. ¿Cual es la ganancia de velocidad global?

gv (^) global

fr=0. gv (^) mejora = 10 CPU

gvmejora = 10; f (^) m = 0.4 ==> gv (^) global =

10

lim gv global = ( 1 0. 4 )

= 1.666 (máxima ganancia para velocidad del disco infinita)

gvmejora -->   Rendimiento medio armónico Sean P 1 , P 2 , ..., Pi ,...Pm un conjunto de programas que representan modos de funcionamiento de una carga de trabajo. Por ejemplo, P 1 , puede representar el modo de funcionamiento entero, P 2 el modo real , etc.

Sean r 1 , r 2 , ..., ri ,... rm las velocidades de ejecución en instrucciones/segundo de los programas anteriores, y t 1 , t 2 , ... , t i ,... tm los tiempos de ejecución medios por instrucción en segundos/instrucción: t (^) i = 1/ri

Se definen los siguientes parámetros:

Tiempo de ejecución medio aritmético

   

 

m

i 1 i

m

i 1

a i r

1

m

1 t m

1 T

Velocidad de ejecución media armónica

m

i 1 i

a

h

r

m

T

R

Tiempo de ejecución medio ponderado

m

i 1 i

* i

a

r

f

T

con f 1 , f 2 , ... f i, ...f m los pesos de los programas P 1 , P 2 , ..., Pi ,...Pm ;

f 1

m

i 1

i

Velocidad de ejecución media armónica ponderada

 

m

i 1 i

i

a

h

r

f

1

T

1 R

Velocidad de ejecución media aritmética

 

m

i 1

a (^) m ri

R

Velocidad de ejecución media aritmética ponderada

 

m

i 1

Ra fi*ri

Problema cuando se promedian velocidades en lugar de tiempos cuando se quiere caracterizar el comportamiento de un computador que funciona con 2 o más modos:

P 1 ejecuta 10.000 instrucciones en 5 segundos => r1 = 2.000 instrucciones/segundo P 2 ejecuta 10.000 instrucciones en 2 segundos => r2 = 5.000 instrucciones/segundo

Rh (B) = 1/ Ta (B) = 0,

Rh (C) = 1/ Ta (C) = 2,

Luego el mejor computador (más rápido) es C , seguido de A , y seguido de B

Velocidad de ejecución media geométrica

 

m

i

m

Rg Ri

1

1 /

Velocidad de ejecución media geométrica ponderada

 

m

i

f g i

R Ri

1

Se utiliza con medidas de rendimiento normalizadas con respecto a una máquina de referencia.

2. Patrones de medida ( Benchmarks )

Para evaluar el rendimiento de un computador podemos utilizar diferentes técnicas:  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.

En la tercera alternativa es la máquina o máquinas reales las que se evalúan con el fin de disponer de algún criterio de elección. En este caso (y posiblemente en algunos modelos de simulación) será necesario disponer de un conjunto de programas representativos de la carga real de trabajo que vaya a tener la máquina, y con respecto a los cuales se realicen las medidas. Estos programas patrones se denominan benchmarks , y serán el objeto de estudio de este apartado.

Podemos utilizar diferentes criterios no excluyentes a la hora de clasificar los benchmarks que se utilizan en la actualidad para evaluar los computadores.

Comenzaremos con una clasificación general en función del ámbito de aplicación que representan, es decir, el tipo de recursos computacionales que mayoritariamente intervienen en la evaluación. En este sentido los clasificaremos en:

Enteros : aplicaciones en las que domina la aritmética entera, incluyendo procedimientos de búsqueda, operaciones lógicas, etc. Por ejemplo, SPECint.  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 LoopsPatrones 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 ) A continuación estudiaremos con algún detalle tres de los benchmarks con mayor difusión.

2.1. LINPACK

Es una colección de subrutinas Fortran que analizan y resuelven ecuaciones lineales y problemas de mínimos cuadrados. Los sistemas de ecuaciones lineales que contempla utilizan diferentes formas de las matrices: generales, en banda, simétricas, triangulares etc. Se diseñó para medir el rendimiento en supercomputadores a finales de los 70 y principio de los 80 (Dongarra). Lo componen las siguientes subrutinas:

 matrices generales y en banda  matrices definidas positivas  matrices en banda definidas positivas  matrices indefinidas simétricas  matrices triangulares y tridiagonales  descomposición de Cholesky  descomposición QR  actualización de las descomposiciones QR y Cholesky  descomposición valores singulares La tabla siguiente muestra los resultados de este benchmark para algunos computadores corriendo bajo un sistema operativo y utilizando un compilador concreto. La primera columna numérica presenta el resultado en Mflops/segundo , es decir, en millones de operaciones en punto flotante por segundo para una matriz de orden 100. La segunda para una matriz de orden 1000, y la tercera presenta el rendimiento de pico de la máquina. Para resolver un sistema de n ecuaciones se realizan 2/3n^3 + 2n^2. Computador OS/Compilador N= Mflops/s

N= Mflops/s

Peak Mflops/s Cray T916 (8 proc. 2.2 ns) cf77 (6.0) -Zp -Wd-68 10800 14400 Cray T916 (4 proc. 2.2 ns) cf77 (6.0) -Zp -Wd-68 5711 7200 Cray T916 (2 proc. 2.2 ns) cf77 (6.0) -Zp -Wd-68 2943 3600 Cray T916 (1 proc. 2.2 ns) cf77 (6.0) -Zp -Wd-68 522 1576 1800 Cray C90 (16 proc. 4.2 ns) CF77 5.0 -Zp -Wd-e68 479 10780 15238 Cray C90 (8 proc. 4.2 ns) CF77 5.0 -Zp -Wd-e68 468 6175 7619 Cray 3-128 (4 proc. 2.11 ns) CSOS 1.0 level 129 421 2862 3792 Hitachi S-3800/480(4 proc 2 ns) 20640 32000 Hitachi S-3800/380(3 proc 2 ns) 16880 24000 Hitachi S-3800/280(2 proc 2 12190 16000 Hitachi S-3800/180(1 proc 2 ns) OSF/1 MJ FORTRAN:V03-00 408 6431 8000 Cray 3-128 (2 proc. 2.11 ns) CSOS 1.0 level 129 393 1622 1896 Cray C90 (4 proc. 4.2 ns) CF77 5.0 -Zp -Wd-e68 388 3275 3810 Cray C90 (2 proc. 4.2 ns) CF77 5.0 -Zp -Wd-e68 387 1703 1905 Cray C90 (1 proc. 4.2 ns) CF77 5.0 -Zp -Wd-e68 387 902 952 NEC SX-3/44R (4 proc. 2.5 ns) 15120 25600 NEC SX-3/42R (4 proc. 2.5 ns) 8950 12800 NEC SX-3/41R (4 proc. 2.5 ns) 4815 6400 NEC SX-3/34R (3 proc. 2.5 ns) 12730 19200 NEC SX-3/32R (3 proc. 2.5 ns) 6718 9600

un modelo poligonal 3D, calcula la intersección entre las líneas y los polígonos, y genera nuevas líneas para calcular la luz incidente en los puntos de intersección. El resultado final es una imagen vista por cámara.  perlbmk : versión del lenguaje de script Perl en el que se han eliminado las características específicas del SO.  gap : implementa un lenguaje diseñado para computar en grupos ( GAP: Groups, Algorithm and Programming ).  vortex : procede de un OODBMS (sistema de gestión de bases de datos orientado a objetos) que se ha adaptado para conformarlo a las exigencias de SPEC2000.  bzip2 : basado en la versión 0.1 de bzipb.  twolf : paquete de ubicación ( placement ) y conexionado ( routing ) en el proceso de diseño de circuitos integrados basados en celdas standard. Utiliza el algoritmo de simulated annealing.

CINT2000 Result Copyright © 1999-2002 Standard Performance Evaluation Corporation

Intel Corporation

Intel D850MD motherboard ( 2.0A GHz, Pentium 4 processor )

SPECint = (^) 35 SPECint_base 2000 = (^) 22

SPEC

license # 13

Tested by: Intel Corporation

Test date: Nov- Hardware Avail: Jan-

Software Avail: Oct- 2001

Benchmark

Reference Time

Base Runtime

Base Ratio Runtime Ratio

164.gzip 1400 184 762 182 767

175.vpr 1400 316 443 315 444

176.gcc 1100 128 862 128 861

181.mcf 1800 326 552 326 553

186.crafty 1000 147 681 146 686

197.parser 1800 249 723 250 721

252.eon 1300 142 917 122 1066

253.perlbmk 1800 209 860 209 860

254.gap 1100 116 944 116 945

255.vortex 1900 162 1171 159 1192

256.bzip2 1500 259 580 254 591

300.twolf 3000 596 503 594 505

SPECint_base2000 722

SPECint2000 735

CINT2000 Result Copyright © 1999-2000 Standard Performance Evaluation Corporation

Intel Corporation

Intel VC820 (1.0 GHz Pentium III)

SPECint

SPECint_base 2000 =

SPEC license # 13

Tested by: Intel Corporation

Test date: Mar- 2000

Hardware Avail: Mar-2000 Software Avail:

Benchmark

Reference Time

Base Runtime

Base Ratio Runtime Ratio

164.gzip 1400 288 486 287 488

175.vpr 1400 426 329 426 329

176.gcc 1100 297 371 295 373

181.mcf 1800 710 254 710 254

186.crafty 1000 200 499 200 499

197.parser 1800 523 344 523 344

252.eon 1300 320 406 320 406

253.perlbmk 1800 312 576 313 576

254.gap 1100 290 379 289 381

255.vortex 1900 272 697 266 714

mesa : librería gráfica 3D  galgel : dinámica de fluidos  art : reconocimiento de imágenes/redes neuronales  equake : simulación de propagación de ondas sísmicas  facerec : procesamiento de imagen: reconocimiento del rostro  ammp : química computacional  lucas : teoría de números/prueba de números primos  fma3d : simulación de choques por elementos finitos  sixtrack : diseño de aceleradores de física nuclear de alta energía  apsi : meteorología: distribución de contaminantes

CFP2000 Result Copyright © 1999-2002 Standard Performance Evaluation Corporation

Intel Corporation Intel D850EMV2 motherboard (2.0A GHz, Pentium 4 processor)

SPECfp = 73 SPECfp_base2000 = 764

SPEC license

13 Tested by: Intel Corporation^ Test date: May-^

Hardware Avail: May- 2002 Software Avail: Apr-

Benchmark

Reference Time

Base Runtime

Base Ratio Runtime Ratio

168.wupwise 1600 168 952 167 957

171.swim 3100 235 1317 233 1333

172.mgrid 1800 246 730 245 736

173.applu 2100 263 798 258 815

177.mesa 1400 183 767 182 769

178.galgel 2900 268 1084 265 1094

179.art 2600 489 532 484 538

183.equake 1300 144 905 137 950

187.facerec 1900 201 947 200 951

188.ammp 2200 434 507 431 511

189.lucas 2000 189 1057 189 1057

Tiempo en una UltraSPARC10 con procesador UltraSPARCIIi , 300 MHz y 256 MB de memoria

191.fma3d 2100 282 746 281 746

200.sixtrack 1100 302 365 293 376

301.apsi 2600 454 572 454 573

SPECfp_base2000 764

SPECfp2000 773

2.2.1.5. SPECfp

410.bwaves Fortran Fluid Dynamics

416.gamess Fortran Quantum Chemistry

433.milc C Physics: Quantum Chromodynamics

434.zeusmp Fortran Physics/CFD

435.gromacs C/Fortran Biochemistry/Molecular Dynamics

436.cactusADM C/Fortran Physics/General Relativity

437.leslie3d Fortran Fluid Dynamics

444.namd C++ Biology/Molecular Dynamics

447.dealII C++ Finite Element Analysis

450.soplex C++ Linear Programming, Optimization

453.povray C++ Image Ray-tracing

454.calculix C/Fortran Structural Mechanics

459.GemsFDTD Fortran Computational Electromagnetics

465.tonto Fortran Quantum Chemistry

470.lbm C Fluid Dynamics

481.wrf C/Fortran Weather Prediction

482.sphinx3 C Speech recognition

17

2006

sphinx

i i bwaves

SPECfp ratio

 (^) 

reference i procesador

time ratio 100 time

 

timereference = tiempo de ejecución del benchmark en le Máquina de referencia

timeprocesador = tiempo de ejecución del benchmark en el procesador a medir

4 Versiones peak base

speed SPECfp2006 SPECfp_base

 Base de Datos La base de datos de TPC-H y TPC-R utiliza un esquema en la 3ª forma normal y responde al diagrama relación-entidad de la siguiente figura (8 tablas):

part partsupp

supplier customer orders

nation region

lineitem

TPC dispone de un generador de datos para todas las tablas de la base dependiendo del factor de escala SF. El factor de escala determina el tamaño de los datos de la base, por ejemplo, SF=100 significa que la suma de todas las tablas de la base es igual a 100 GB. Las dos tablas mayores son lineitem y orders que contienen el 83% de los datos. El tamaño de todas las tablas excepto nation y region tienen un tamaño proporcional al factor de escala.

 Carga de Trabajo Las cargas de trabajo para ambos benchmarks constan de los siguientes componentes:

 Construcción de la base de datos  Ejecución de 22 preguntas de solo-lectura en modo monousuario y multiusuario  Ejecución de 2 funciones de refresco.

La construcción de la base de datos incluye todos los tiempos de respuesta para crear las tablas, cargar los datos, crear índices, definir y validar restricciones, etc.

Las 22 preguntas están definidas en SQL-92 como plantillas (templates), por lo que antes de ser ejecutada sobre la base de datos se tiene que realizar la sustitución de parámetros. Se han elegido para mostrar la capacidad del sistema utilizando todos los recursos en contextos monousuario y multiusuario.

Las dos funciones de refresco (RF1 y RF2) modelan la carga de nueva información (RF1) y la eliminación de información obsoleta (RF2). RF1 inserta nuevas filas en la tabla lineitem y orders , mientras que RF2 elimina el mismo número de filas de las mismas tablas.

 Métrica de rendimiento La principal métrica de rendimiento de TPC es la métrica de rendimiento compuesta (QphH/QphR). Para calcular la métrica compuesta de un sistema para un factor de escala dado, hay que ejecutar un test de potencia seguido por un test de capacidad de procesamiento ( throughput ). Después se combinan los resultados de ambos tests para calcular la métrica compuesta.

En un test de potencia se ejecuta la función de refresco RF1, seguida por la ejecución de las 22 preguntas en modo de único usuario, y por la ejecución de la función de refresco RF2.

En el test de capacidad se ejecutan las 22 preguntas (flujos de preguntas Si) en orden predefinido en múltiples sesiones concurrentes. Además en una sesión separada se ejecuta secuencialmente un par de actualizaciones (RF1, RF2) por cada flujo de preguntas.

Test de Potencia Test de Capacidad (throughput)

Inserción

Flujo de

preguntas

Borrado

RF

Q Q Q . . . Q Q

RF

S1 S

....

Sn (^) RF

RF

RF

RF

tiempo

El número mínimo de flujos depende del factor de escala, según la tabla siguiente: Factor de Escala (SF) Flujos (S) 1 2 10 3 100 4 300 6 1000 7 3000 8 10000 9 Los resultados de los test de potencia y capacidad se utilizan para calcular la potencia de procesamiento (Powre@Size) y la capacidad de procesamiento (Throughput@Size)

La potencia de procesamiento se calcula como la media geométrica de los tiempos de respuesta correspondientes a las preguntas y funciones de refresco. La unidad es preguntas/hora. La media geométrica reduce los efectos de las preguntas con tiempos de respuesta muy cortos y muy largos. Para un factor de escala SF dado, la potencia de procesamiento se calcula como:

24

22

1

2

1

(, 0 )* ( , 0 )

3600 @

 

  i

i

j

j

QI i RI j

SF Power Size

i=1,2,...22;j=1,QI(i,0): tiempo de respuesta en segundos de la query Qi del test de potencia (power)  RI(j,0): tiempo de respuesta en segundos de la función de refresco RFj  3600: segundos (= 1 hora) La capacidad de procesamiento se calcula como la razón del número total de preguntas ejecutadas a lo largo del intervalo de ejecución. La unidad es preguntas/hora. Para un factor de escala SF viene dada por: