rendimiento -...

25
Rendimiento v.2013 John Hennessy – David Patterson, Arquitectura de Computadores – Un enfoque cuantitativo, 1ª edición, Capítulos 1 y 2 (4ª edición, Capítulo 1)

Upload: vodien

Post on 02-Oct-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

Rendimientov.2013

John Hennessy – David Patterson, Arquitectura de Computadores – Un enfoque cuantitativo, 1ª edición,

Capítulos 1 y 2 (4ª 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

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 == TPSRENDIMIENTO == TPS

4

Rendimiento

Expresiones más utilizadas (cont)

Entonces, si A es más rápida que B, al utilizarla puedo hablar de una mejora (speedup) S tal que:

Igualando las dos expresiones:

m=T B−T A

T A

100S=T B

T A

=1+m

100

S=ηA

ηB

=T B

T A

S=1+m

100

A es un m% más rápida

que B

A es un m% más rápida

que B

m=ηA−ηB

ηB

100

IMPORTANTENo confundir los términos speedup con acceleration

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 mejora de 1.5 respecto de la segunda.

m=(15−1010 )100=50 S=

1510

=1.5

IMPORTANTENo utilizar “es tanto más lenta...” y tener cuidado con

“incrementar”, “decrementar”, “desmejorar” y otros términos inciertos.

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” (n times faster), que coincide con la previa definición de mejora. La enunciación en veces es menos confusa:

Sin embargo, el término 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 rendimientoLa tecnología de implementació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 aumentar el rendimiento de una computadora: Menor tiempo de ejecución real (LATENCIA) Mayor productividad (THROUGHPUT)

DISCUSION:Tiempos medios (estadístico, por ejemplo disco rígido) versus RT.

8

Rendimiento

Aumento del rendimiento (cont)

1. Mejorar el caso más común 1. Mejorar el caso más común

2. Explotar la propiedad de localidad 2. Explotar la propiedad de localidad

3. Explotar el paralelismo de los programas 3. Explotar el paralelismo de los programas

9

Aumento del rendimiento

1. Mejorar el caso más comúnOpciones: 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 mejorarse en un factor k, entonces la mejora total obtenida será:

Corolario:

S=1

(1−f )+fk

T= (1−f )T+fT

T MEJORADO=(1− f ) T+fk

T

S=T

T MEJORADO

S MAX=1

(1− f )

10

Aumento del rendimiento – 1. Mejorar 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 mejora?

11

Aumento del rendimiento – 1. Mejorar 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×5)CostoORIGINAL=2 .33CostoORIGINAL

( 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 enterosVER: 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

INSTRUCCIONES(mediciones)

90% del tiempo ejecutando 10% del código

DATOS(no tan tajante)

Localidad TEMPORAL, ESPACIAL y SECUENCIAL

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 mejora obtenida en los accesos a memoria.

b) Calcular la mejora 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 mejora 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 .95

=3 .66

S=1

0 .66+0 .333 .6

=1.32

15

Aumento del rendimiento

3. Explotación del paralelismo

A nivel sistema A nivel procesador

Distintas estrategias:

Puedo mejorar 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[ sciclo ] × CPI [ ciclos

instruccion ] × N [ instruccionesprograma ]

TECNOLOGÍA(proceso fab)

ORG(datapath)

ORG(serie-paral)

ISA(inst -complex)

ISA(inst complex)

COMPILADOR(eficiencia)

RISC vs CISCRISC 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 (ejemplo operaciones 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éticosProgramas, 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]

DMIPS = Dhrystone/1757(1757 es el Dhristone de la VAX-11, primer maquina de

1MIPS)DMIPS/MHz x MHz/Watt = DMIPS/WattRecordar que

• CoreMark desarrollado por el Embedded Microprocessor Benchmark Consortium (EEMBC). Soluciona algunos problemas del anterior.

Debe observarse el efecto del cache. Al ser programas pequeños no miden performance de memoria. Sensible a las técnicas de compilación y optimizaciones.Benchmarketing.

P=CV 2 f ModoIDLE

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.