Aumento del rendimiento

Anuncio
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)
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 automotriz
velocidad máxima (km/h), aceleración (0­100 km/h), derrape (g), consumo (l/100 km)
precio ($), costo de mantenimiento ($)
El mercado de computadoras
rendimiento, tamaño, potencia?
precio, costo de mantenimiento?
Tres grandes categorías
Servers (rendimiento)
Embedded (costo, potencia, tamaño)
Desktop/Worstations (costo/rendimento)
Top500
vs.
Green500
2
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:
1 TB ηA
Tα ⇒
=
η T A ηB
RENDIMIENTO == TPS
3
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:
S=
ηA
ηB
=
TB
S=1
TA
A es un n%
más rápida
que B
n
100
Igualando las dos expresiones:
TB
n
S=
=1
TA
100
n=
T B −T A
TA
100
n=
η A−η B
ηB
100
IMPORTANTE
No confundir los términos speedup con acceleration
4
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 0 0 =50
10
15
S= =1 . 5
10
IMPORTANTE
No utilizar “es tanto más lenta...” y tener cuidado con
“incrementar”, “decrementar”, “desmejorar”
y otros términos inciertos.
5
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:
n =
TB
TA
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.
6
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.
7
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
8
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á:
S=
1
T=  1− f  T+fT
f
1−
f



k
T MEJORADO=  1− f  T+
S=
Corolario:
S MAX =
1
 1− f
T
f
T
k
T MEJORADO

9
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?
10
Aumento del rendimiento – 1. Acelerar el más común
Solución
a) La relación Costo/Rendimiento empeora:
S=
1
0.5
 1−0 . 5  
5
Costo NUEVO=



Costo
Rendimiento
=1 . 66
66% más rápido
133% más caro

2
1
×1 ×5 Costo ORIGINAL=2 .33 Costo ORIGINAL
3
3
=
NUEVO

2 . 33
Costo
×
1. 66
Rendimiento

Desmejora
ORIGINAL
Pero cuidado: puede ser que ahora sea útil y antes no!
VER: Agregar FP a un procesador hace más lenta la operación en enteros
11
Aumento del rendimiento
2. Localidad de referencia
(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.
INSTRUCCIONES
(mediciones)
90% del tiempo ejecutando 10% del código
DATOS
(no tan tajante)
Localidad TEMPORAL, ESPACIAL y SECUENCIAL
12
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.
13
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:
1
S=
 1−0 . 9 
Los accesos son un 260% más rápidos.
b) La captación es 1/3 ciclo de instrucción:
S=
0.9
5
1
0 . 66
0 . 33
3.6
=3 . 66
=1. 32
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é.
14
Aumento del rendimiento
3. Explotación del paralelismo


A nivel sistema
A nivel procesador
A B C D E
D
A C E
Distintas estrategias:
Latencia 5
Productividad=1/5
Latencia 3
Productividad=1/3
B
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
Latencia 5
Productividad=2/5
A B C D E
A B C D E
Latencia 5
Productividad=1/1
A B C D E
A B C D E
15
Rendimiento
Medición del tiempo de ejecución
El rendimiento es inversamente proporcional al tiempo de ejecución
del programa involucrado.
Cómo mido ese tiempo?
61% = (8.1+7.3)/25.2 x 100
$ time test
8.1u 7.3s 25.2
61%
$ time test
real 0m2.739s
user 0m2.304s
sys
0m0.016s
<- tiempo transcurrido (wall)
<- tiempo de ejecución
<- 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.
16
Medición del rendimiento
Performance del procesador
En general, el tiempo de ejecucion de un programa puede expresarse
como:
T CPU =
CICLOS DE CLOCK DEL PROGRAMA N . CPI
=
f CLOCK
f CLOCK
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,
CPI= ∑ CPI i
Ni
N
i: familia de instrucciones
CPIi: ciclos de clock por instrucción de la familia
Ni: recuento de instrucciones de la familia
N:
recuento total de instrucciones 17
Medición del rendimiento
Ejemplo
Calcular el CPI para el siguiente caso de utilización de los recursos de
un procesador:
Instrucción
ALU
LOAD
STORE
JUMP
Frecuencia
43.00%
21.00%
12.00%
24.00%
CPIi
1
2
2
2
CPI=1 . 57
18
ISA
Medición del rendimiento
ORG
ARQ
Ecuación de performance
IMPL
TEC
Entonces, el tiempo de ejecucion de un programa puede expresarse
como:
1
f CLOCK
[ ]
s
ciclo
[
ciclos
instruccion
]
× N
[
instrucciones
programa
TECNOLOGÍA
(proceso fab)
ORG
(serie-paral)
COMPILADOR
(eficiencia)
ORG
(datapath)
ISA
(inst -complex)
ISA
(inst complex)
N: Brecha semántica
× CPI
RISC vs CISC
]
TODOS
RELACIONADOS
T CPU =
19
Medición del rendimiento
Benchmarks
Parámetros (ej. fecuencia de clock) o MIPS
Permiten comparar dentro de una familia, no entre diferentes
arquitecturas (ej. RISC-CISC).
f CLOCK
N
MIPS=
=
Dependen de ISA y el programa.
6
6
T
10
CPI
10
Pueden resultar inversamente proporc.
CPU
al rendimiento (FP)
MFLOPS
Precaució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).
N FP
MFLOPS=
6
T CPU 10
Programas reales (ej. Spice, CAD, gráficos)
Deben estar disponibles o deben instalarse. Versiones.
20
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.
21
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)
22
Medición del rendimiento
Medias pitagóricas
Cómo promediar medidas si
estamos buscando una única
figura de mérito.
A: Media aritmética - Promedio
No utilizar cuando hay variaciones grandes, pues son enmascaradas.
G: Media geométrica - Areas
Es mejor para performance relativa
H: Media armónica - Tasas
Muy sensible a valores pequeños, no se puede calcular si uno vale cero.
Insensible a valores grandes. Es la media correcta para tasas.
23
Medición del rendimiento
Medias pitagóricas
Ejemplos:
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:
24
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.
25
Descargar