rendimiento - laboratorio de...
TRANSCRIPT
Rendimiento
John Hennessy – David Patterson, Arquitectura de Computadores – Un enfoque cuantitativo 1a Edición,
Capítulos 1 y 2 (3a y 4a Edición, Capítulo 1)
2
Rendimiento
Introducción
Cómo comparar la performance de dos computadoras diferentes en su arquitectura (ISA, Organización y Tecnología)? Cómo analizar el impacto de una mejora? Por qué existen tantos tipos de computadoras?
Comparación con la industria automotrizvelocidad máxima (km/h), aceleración (0100 km/h), derrape (g), consumo (l/100 km)precio ($), costo de mantenimiento ($)
El mercado de computadorasrendimiento, tamaño, potencia?precio, costo de mantenimiento?
Tres grandes categoríasServers (rendimiento)Embedded (costo, potencia, tamaño)Desktop/Worstations (costo/rendimento)
Top500vs.
Green500
3
Rendimiento
Expresiones más utilizadas
Si T es el tiempo de ejecución de un determinado programa y η el rendimiento de la computadora que lo ejecuta, decimos que la computadora A es más rápida que la computadora B si:
TA<TB y ηA>ηB
Por lo tanto el rendimiento es inversamente proporcional al tiempo de ejecución del programa involucrado. Puede decirse que:
Tα1η⇒
T B
T A
=η A
ηB
RENDIMIENTO == TPS
4
Rendimiento
Expresiones más utilizadas (cont)
Entonces, si A es más rápida que B, al utilizarla puedo hablar de una aceleración (speedup) S tal que:
Igualando las dos expresiones:
n=T B−T A
T A
100S=T B
T A
=1n
100
S=η A
ηB
=T B
T A
S=1n
100
A es un n% más rápida
que B
n=η A−ηB
ηB
100
IMPORTANTENo confundir los términos speedup con acceleration
5
Rendimiento
Expresiones más utilizadas (cont)
Ejemplo: Una computadora ejecuta un cierto programa en 10 segundos. Una segunda computadora tarda 15 segundos en ejecutar el mismo programa. Por lo tanto, la primera es un 50% (no 33%!!) más rápida que la segunda, o sea que si la utilizo obtengo una aceleración de 1.5 respecto de la segunda.
n=1 5−1 0
1 01 0 0 =50 S=
1 5
1 0=1 .5
IMPORTANTENo utilizar “es tanto más lenta...” y tener cuidado con
“incrementar”, “decrementar”, “desmejorar” y otros términos inciertos.
6
Rendimiento
Expresiones más utilizadas (cont)
En bibliografía más reciente se evitan también las expresiones del tipo “tanto % más rápido”. Se intenta utilizar solamente “n veces más rápido”, que coincide con la previa definición de aceleración. La enunciación en veces es menos confusa:
Sin embargo, el término aceleración (speedup) sigue siendo muy utilizado, y la expresión “es n veces más rápido que”... puede confundir.
n =T B
T A
7
Rendimiento
Aumento del rendimiento
La tecnología de impelmentación tiene sus tiempos (Ley de Moore) lo que representa un límite...
Cómo se logra, desde la arquitectura y la organización, un aumento del rendimiento? (disminución del tiempo de ejecución).
Es importante diferenciar dos formas diferentes de aumetar el rendimiento de una computadora: Menor tiempo de ejecución real (LATENCIA) Mayor productividad (THROUGHPUT)
Tiempos medios (estadístico, por ejemplo disco rígido) versus RT.
8
Rendimiento
Aumento del rendimiento (cont)
1. Acelerar el caso más común
2. Explotar la propiedad de localidad
3. Explotar el paralelismo de los programas
9
Aumento del rendimiento
1. Acelerar el caso más común
Opciones: CPU – MEM - I/O
Ley de Amdhal:Siendo T el tiempo de ejecución de una tarea, y f la fracción de ese tiempo que puede acelerarse un factor k, la aceleración obtenida será:
Corolario:
S=1
1− f fk
T= 1− f T+fT
T MEJORADO= 1− f T+fk
T
S=T
T MEJORADO
SMAX=1
1− f
10
Aumento del rendimiento – 1. Acelerar el más común
Ejemplo
Considere un determinado caso de aplicación en que la CPU se utiliza el 50% del tiempo (el resto del tiempo se consume en accesos a memoria y al sistema se entrada/salida).Suponga que el costo de la CPU representa 1/3 del costo total de la computadora.
a) ¿Mejora la relación Costo/Rendimiento si reemplazo la CPU por otra 5 veces más rápida que cuesta 5 veces más?
b) ¿Hasta cuánto pagaría por la CPU?
c) Si pudiera comprar una CPU infinitamente rápida, ¿cúanto sería la aceleración?
11
Aumento del rendimiento – 1. Acelerar el más común
Solución
a) La relación Costo/Rendimiento empeora:
Pero cuidado: puede ser que ahora sea útil y antes no!
S=1
1−0 . 5 0 .55
=1 .66
CostoNUEVO= 23×1
13×5CostoORIGINAL=2 .33 CostoORIGINAL
CostoRendimiento
NUEVO=
2 . 331. 66
× CostoRendimiento
ORIGINAL
66% más rápido
133% más caro
Desmejora
VER: Agregar FP a un procesador hace más lenta la operación en enteros
12
Aumento del rendimiento
2. Localidad de referencia
INSTRUCCIONES(mediciones)
90% del tiempo ejecutando 10% del código
DATOS(no tan tajante)
Localidad TEMPORAL, ESPACIAL y SECUENCIAL
(Principio de Localidad)Comportamiento predecible de los recursos de los sistemas de computadora.
Localidad temporal: un recurso accedido en un instante lo será de nuevo en el futuro inmediato.Localidad espacial: la probabilidad de acceder a un recurso es mayor si otro recurso próximo acaba de ser accedido.Localidad secuencial: caso particular de espacial; la memoria, en particular, suele ser accedida en forma secuencial.
13
Aumento del rendimiento – 2. Localidad
Ejemplo
Agrego a una computadora memoria cache 5 veces más rápida que la memoria principal, de tamaño tal que pueda alojar el 10% más usado de un programa.
a) Calcular la aceleración obtenida en los accesos a memoria.
b) Calcular la aceleración en la ejecución de los programas si el ciclo de instrucción se divide en tres etapas iguales: FETCH-DECODE-EXEC.
c) Calcular la aceleración obtenida si el ciclo de instrucción tiene las siguientes cinco etapas: FETCH-DECODE-FETCHOP-EXEC-WRITEOP.
14
Aumento del rendimiento – 2. Localidad
Solución
a) Si entra el 10% del programa, la puedo utilizar en el 90% de los accesos a memoria:
Los accesos son un 260% más rápidos.
b) La captación es 1/3 ciclo de instrucción:
La ejecución con caché es 32% más rápida que sin caché.
c) Los accesos a memoria son 3/5 del ciclo de instrucción: La ejecución con caché es 76% más rápida que sin caché.
S=1
1−0 . 9 0 . 9
5
=3 . 66
S=1
0 . 660 . 333 . 6
=1. 32
15
Aumento del rendimiento
3. Explotación del paralelismo
A nivel sistema A nivel procesador
Distintas estrategias:
Puedo acelerar hasta el límite impuesto por la tecnología.Puedo paralelizar secciones.O realizar varias simultáneamente. O utilizar el concepto de linea de montaje (todas las secciones en paralelo).
A B C D E
A
B
C
D
E
A B C D E
A B C D E
A B C D E
A B C D E
A B C D E
Latencia 5Productividad=1/5
Latencia 3Productividad=1/3
Latencia 5Productividad=2/5
Latencia 5Productividad=1/1
16
El rendimiento es inversamente proporcional al tiempo de ejecución del programa involucrado.Cómo mido ese tiempo?
$ time test8.1u 7.3s 25.2 61%
$ time testreal 0m2.739s <- tiempo transcurrido (wall)user 0m2.304s <- tiempo de ejecuciónsys 0m0.016s <- llamadas al sistema operativo
El tiempo user (+sys?) es mi TCPU. El resto del tiempo esperando I/O
o ejecutando otros programas en el multitarea.
Rendimiento
Medición del tiempo de ejecución
61% = (8.1+7.3)/25.2 x 100
17
En general, el tiempo de ejecucion de un programa puede expresarse como:
donde CPI es el número de ciclos de clock por instrucción y N el número de instrucciones.CPI es una medida estadística que depende del uso que se le de al repertorio de instrucciones.En general,
i: familia de instruccionesCPIi: ciclos de clock por instrucción de la familiaNi: recuento de instrucciones de la familiaN: recuento total de instrucciones
Medición del rendimiento
Performance del procesador
T CPU=CICLOS DE CLOCK DEL PROGRAMA
f CLOCK
=N .CPIf CLOCK
CPI=∑CPI i
N i
N
18
Calcular el CPI para el siguiente caso de utilización de los recursos de un procesador:
Medición del rendimiento
Ejemplo
CPI=1 . 57
Instrucción Frecuencia CPIiALU 43.00% 1LOAD 21.00% 2STORE 12.00% 2JUMP 24.00% 2
19
Entonces, el tiempo de ejecucion de un programa puede expresarse como:
Medición del rendimiento
Ecuación de performance
T CPU=1
f CLOCK[ s
ciclo ] × CPI [ ciclosinstruccion ] × N [ instrucciones
programa ]
TECNOLOGÍA(proceso fab)
ORG(datapath)
ORG(serie-paral)
ISA(inst -complex)
ISA(inst complex)
COMPILADOR(eficiencia)
RISC vs CISCN: Brecha semántica
TO
DO
SR
ELA
CIO
NA
DO
S
ARQ
ISA
IMPL
ORG
TEC
20
Medición del rendimiento
Benchmarks Parámetros (ej. fecuencia de clock) o MIPSPermiten comparar dentro de una familia, no entre diferentes arquitecturas (ej. RISC-CISC).Dependen de ISA y el programa.Pueden resultar inversamente proporc. al rendimiento (FP)
MFLOPSPrecaución con las diferentes ISAs (ej. 68882 de Motorola tiene seno y raíz cuadrada).Precaución con los cálculos parciales (no es lo mismo una suma completa que la normalización de una suma).
Programas reales (ej. Spice, CAD, gráficos)Deben estar disponibles o deben instalarse. Versiones.
MFLOPS=N FP
T CPU 106
MIPS=N
T CPU 106=
f CLOCK
CPI 106
21
Medición del rendimiento
Benchmarks sintéticos
Programas, generalmente pequeños, escritos originalmente en FORTRAN (traducidos a C) Utilizados para comprobar el comportamiento ante un tipo determinado de carga.Por ejemplo:
Whetstone (1972) FP [MWIPS] Linpack (1984) FP álgebra lineal [FLOPS] Dhrystone (1984) ENTEROS [veces/seg]
Debe observarse el efecto del cache. Al ser programas pequeños no miden performance de memoria.
Benchmarketing.
22
Medición del rendimiento
Benchmarks sintéticos
Consorcio de fabricantes de hw y sw
SPEC (1988) “Standard Performance Evaluation Corporation” (www.spec.org) Orientado a la CPU, tiempo, latencia.
TPC (1990) “Transaction Processing Performance Council” (www.tpc.org) Orientado a transacciones, throughput.
Compañías...
INFOSIZING (www.sizing.com)
23
Medición del rendimiento
Medias pitagóricas
A: Media aritmética - PromedioNo utilizar cuando hay variaciones grandes, pues son enmascaradas.
G: Media geométrica - AreasEs mejor para performance relativa
H: Media armónica - TasasMuy sensible a valores pequeños, no se puede calcular si uno vale cero. Insensible a valores grandes. Es la media correcta para tasas.
Cómo promediar medidas si estamos buscando una única
figura de mérito.
24
Medición del rendimiento
Medias pitagóricasEjemplos:
1. Un vehiculo viaja una cierta distancia d a velocidad x = 60 km/h y luego la misma distancia d a velocidad y = 40 km/h. La velocidad promedio se calcula como la media armónica de x e y (48 km/h). El tiempo total es como si hubiera viajado la distancia completa a la velocidad promedio.
2. Un vehiculo viaja un cierto tiempo t a velocidad x = 60 km/h y luego el mismo tiempo t a velocidad y = 40 km/h. La velocidad promedio se calcula como la media aritmética de x e y (50 km/h).
Propiedades:
25
Medición del rendimiento
Media cuadrática (RMS)
O valor cuadrático medio o RMS (del inglés root mean square): raíz cuadrada de la media aritmética de los cuadrados de los valores.
Útil cuando la variable toma valores positivos y negativos, como ocurre, por ejemplo, en los errores de medida. En tal caso se puede estar interesado en obtener un promedio que no recoja los efectos del signo.