rendimiento - laboratorio de...

25
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)

Upload: trandiep

Post on 02-Oct-2018

225 views

Category:

Documents


0 download

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 (0­100 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.