































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: IC1, Profesor: , Carrera: Ingeniería Informática, Universidad: UDIMA
Tipo: Apuntes
1 / 39
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
































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:
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.
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 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:
Fc
Número de ciclos de reloj de la CPU Tiempo de CPU
_ _
( )
NI
NI CPI NI
CPI NI
CPI
(^)
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
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á:
La ganancia de velocidad valdrá:
_1. 0416
1. 25
TiempodeCPU_A
Tiempo deCPU_B
MIPS (Millones de Instrucciones Por Segundo)
6
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):
MFLOPS (Millones de operaciones en punto FLOtante Por Segundo)
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
Tiempo de ejecución medio ponderado
i
Velocidad de ejecución media armónica ponderada
r
f
1
T
1 R
Velocidad de ejecución media aritmética
m
i 1
a (^) m ri
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
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
1
1 /
Velocidad de ejecución media geométrica ponderada
m
i
f g i
1
Se utiliza con medidas de rendimiento normalizadas con respecto a una máquina de referencia.
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 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 ) A continuación estudiaremos con algún detalle tres de los benchmarks con mayor difusión.
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
SPECint = (^) 35 SPECint_base 2000 = (^) 22
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_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
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
17
2006
sphinx
i i bwaves
SPECfp ratio
(^)
reference i procesador
time ratio 100 time
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):
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.
RF
Q Q Q . . . Q Q
RF
S1 S
....
Sn (^) RF
RF
RF
RF
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: