Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2:...

23
Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador 1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento. Rendimiento de la CPU. Métricas populares de rendimiento: MIPS Y MFLOPS Programas de prueba para la evaluación del rendimiento. Ley de Amdahl Bibliografía básica: [Patt-95], [Henn-93] ... 2 horas

Transcript of Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2:...

Page 1: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 1 de 22

Capítulo 2: Rendimiento de un computador

• Definición de rendimiento.

• Rendimiento de la CPU.

• Métricas populares de rendimiento: MIPS Y MFLOPS

• Programas de prueba para la evaluación del rendimiento.

• Ley de Amdahl

Bibliografía básica:

[Patt-95], [Henn-93]

... 2 horas

Page 2: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 2 de 22

Definición del rendimiento

Existen dos formas de medir el rendimiento:

• Tiempo de respuesta– Tiempo entre el comienzo y finalización de una tarea. También llamado

tiempo de ejecución.

• Productividad (throughput)– Cantidad total de trabajo realizado en un tiempo determinado.

– Una mejor medida desde el punto de vista del sistema pero no desde el punto de vista del usuario.

Page 3: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 3 de 22

Tiempo de respuesta ProductividadReloj

Múltiples procesadores.Tareas separadas

-

Procesador paralelo

Segmentación -

Tiempo de respuesta vs productividad

• Un tren de lavado de coches comienza un coche cada 30 segundos y en el tren existen simultáneamente 6 coches en distintas fases de lavado.

• Tiempo de respuesta (usuario): 180 segundos

• Productividad (sistema): 1 coche cada 30 segundos

Page 4: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 4 de 22

• El rendimiento de un computador X es inversamente proporcional al tiempo de ejecución:

Rendimiento y tiempo de ejecución

XX ejecución de Tiempo

ienton1

dimRe

• Computador X es n% más rápido que el computador Y

• Computador Y es n% más lento que el computador X

nienton

ientonienton

Y

YX

100*dimRe

dimRedimRe

nienton

ientonienton

X

YX

100*dimRe

dimRedimRe

Page 5: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 5 de 22

Medidas del tiempo

• Tiempo (segundos)– Única medida completa y fiable del rendimiento de un computador.

• Comando Unix: time “programa” --> 90.7 u 12.9 s 2:39 65%

¿ Q u é tie m po m e d im o s?

Tiem po de usuario9 0 .7 s

Tiem po del S istema1 2 .9 s

Tiem po de CPU(D e d ica do a n u e stra ta re a)

9 0 .7 s + 1 2 .9 s = 1 0 3 .6 s (6 5 % )

T ie m p o d e d ica d o a :Entrada/salida, otros program as

5 5 .4 s

Tiem po transcurrido(to ta l: 2 :3 9)

Page 6: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 6 de 22

ciclo de Tiempoprograma por reloj ciclos NºT x =CPU

nesinstruccio de Recuentoprograma por reloj de ciclos Nº

CPI =MEDIO

ciclo de Tiempo x CPI x nesinstruccio de RecuentoT MEDIO =CPU

(CPIMEDIO : Nos permite comparar dos implementaciones de una misma arquitectura)

= T * CPI * NT CCPU

Reloj

Rendimiento de la CPU:Ecuación clásica

Page 7: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 7 de 22

TCPINT Cxx=

CicloSegundos

xnInstrucció

Ciclosx

magraoPresInstrucion

=magraoPr

Segundos=CPU_Tiempo

Recuento deInstrucciones

CPI Tiempo de Ciclo

Programa x

Compilador x (x)

Repertorio deinstrucciones

x x

Organización-Estructura

x x

Tecnología x

Factores de la ecuación clásica:Análisis de dependencias

Page 8: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 8 de 22

Métricas populares de rendimiento (I)MIPS y MFLOPS • MIPS (millones de instrucciones por segundo)

• Inconvenientes de la métrica:– Los MIPS dependen del repertorio de instrucciones. No podemos comparar

distintas arquitecturas.

– Los MIPS varían entre programas en el mismo computador.

– Los MIPS pueden variar inversamente al rendimiento.

MIPSTiempoTiempo

MIPS

106 x CPI

reloj del FrecuenciaMIPS

ferenciaRe

estimado_No

ferenciaRelativosRe

Nativos

x=

=

Page 9: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 9 de 22

Métricas populares de rendimiento (II)MIPS y MFLOPS • MFLOPS (Millones de operaciones en punto flotante por segundo)

• Inconvenientes:– Sólo aplicable a las operaciones en punto flotante.

– Instrucciones en punto flotante no comparables entre diferentes máquinas.

Máquina A: *, -, * y / Máquina B: No tiene “/” (dará mas MFLOPS)

– Mezcla de operaciones rápidas y lentas.

• Los MFLOPS para 100 sumas serán mayores que para 100 divisiones.

• MFLOPS normalizados:

106 . ejecución de Tiempo

flotante punto en soperacione NºMFLOPS =

Operaciones Pesos+, - , * y comparar 1, raíz cuadrada 4Exp, seno 8

Page 10: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 10 de 22

Programas para la evaluación del rendimiento (I) Benchmarks

Programas que forman una carga de trabajo con la que el usuario espera predecir el rendimiento de la carga de trabajo real.

• Programas reales típicos– Ejemplos: Compiladores (gcc), tratamiento de textos (TeX), herramientas

CAD (spice).

• Núcleos obtenidos de programas reales (Kernels)– Pequeñas partes intensivas en el tiempo de programas reales.

– Ejemplo: Livermore Loops y Linpack.

• Programas triviales o benchmarks reducidos (toys)– 10 -100 líneas de programa. Resultado conocido antes de ejecutarlo.

– Ejemplo:Quicksort, puzzle, ...

• Programas sintéticos– Creados artificialmente (programas sintéticos).

– Ejemplo: Whetstone y Dhrystone.

Page 11: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 11 de 22

Programas para la evaluación del rendimiento (II) Benchmarks

• SPEC: Cooperativa de Evaluación del Rendimiento de Sistemas (System Performance Evaluation Cooperative)

– En 1988 representantes de unas cuantas compañías - Apollo/Hewlett-Packard, DEC, MIPS y Sun- fundan una cooperativa para la evaluación del rendimiento de sistemas.

– Llegan al acuerdo de ejecutar todos un conjunto de programas y entradas reales. Factible debido en gran parte a:

• Sistemas Operativos portables (Unix)

• Popularidad de los Lenguajes de Alto Nivel.

• Ahora, los compiladores, también forman parte del rendimiento de un computador y deben ser medidos en cualquier evaluación.

Page 12: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 12 de 22

SPEC’89

• 1989– 4 programas de aritmética entera.

– 6 programas de punto flotante.

– No se distingue entre SPECs de aritmética entera y punto flotante.

Tiempo de ejecución en un VAX 11/780

Tiempo de ejecución en la máquina a medirSPECPor programa=

SPEC (global) = [ (SPECPor programa)i]1/n

(Media geométrica de los SPEC de cada programa: Hace que sea tan importante que el programa A pase de 2 a 1 segundo como que el programa B pase de 2000 a 1000 segundos).

Page 13: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 13 de 22

SPEC’89

0

100

200

300

400

500

600

700

800

tomcatvfppppmatrix300eqntottlinasa7doducspiceespressogcc

BenchmarkCompiler

Enhanced compiler

SP

EC

pe

rfo

rman

ce r

atio

• Mejoras del “compilador” y repercusión en el rendimiento.

Page 14: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 14 de 22

SPEC’92 y SPEC’95

• 1992– SpecInt92 (6 programas aritmética entera).

– SpecFp92 (14 programas de aritmética en punto flotante).

– SPECbase: Medida obtenida sin hacer uso de los flags del compilador que optimiza el código generado según el programa específico.

• VAX 11/780 -> 1 Spec(int/fp)92

• 1995– SpecInt95 (8 programas aritmética entera).

– SpecFp95 (10 programas de aritmética en punto flotante).

– Nuevo conjunto de programas! (para 3 años).

– Los SPECs de cada programa se normalizan respecto a una Sun SPARCStation 10/40.

• SparcStation 10/40 -> 1 Spec(int/fp)95

• SparcStation 10/40 -> 41.26 SpecInt92 - 34.35 Specfp92

Page 15: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 15 de 22

Programas de SPEC’95

Benchmark Description

go Artificial intelligence; plays the game of Gom88ksim Motorola 88k chip simulator; runs test programgcc The Gnu C compiler generating SPARC codecompress Compresses and decompresses file in memoryli Lisp interpreterijpeg Graphic compression and decompressionperl Manipulates strings and prime numbers in the special-purpose programming language Perlvortex A database program

tomcatv A mesh generation programswim Shallow water model with 513 x 513 gridsu2cor quantum physics; Monte Carlo simulationhydro2d Astrophysics; Hydrodynamic Naiver Stokes equationsmgrid Multigrid solver in 3-D potential fieldapplu Parabolic/elliptic partial differential equationstrub3d Simulates isotropic, homogeneous turbulence in a cubeapsi Solves problems regarding temperature, wind velocity, and distribution of pollutantfpppp Quantum chemistrywave5 Plasma physics; electromagnetic particle simulation

Page 16: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 16 de 22

Programas de SPEC 2000

Page 17: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 17 de 22

SPEC’95

PentiumClock rate (MHz)

SP

EC

fp

Pentium Pro

2

0

4

6

8

3

1

5

7

9

10

200 25015010050

Clock rate (MHz)

SP

EC

int

2

0

4

6

8

3

1

5

7

9

10

200 25015010050

Pentium

Pentium Pro

• ¿Por qué al duplicar la frecuencia de reloj no se duplica el rendimiento (Pentium)?

Procesador SpecInt95 (mejora) SpecFp95 (mejora)Pentium100 -> 200 MHz (x2)

1.7 1.4

Pentium Pro150 -> 200 MHz (x1.33)

1.24 1.18

Page 18: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 18 de 22

Ejemplo: SPEC’95

02468

101214161820

Ult

raS

pa

rc2

00

Mh

z

R1

00

00

20

0M

hz

PP

C6

20

20

0M

hz

Pe

nti

um

Pro

20

0M

hz

PA

-80

00

18

0M

hz

DE

C 2

11

64

50

0M

hz

SPEC'95

SPECint95bSPECfp95b

Page 19: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 19 de 22

Problemas de los programas de prueba

• Los benchmarks reducidos (toys) y los sintéticos no cargan la memoria principal del sistema de forma realista (todo el programa cabe en la memoria cache)

• Una vez que el benchmark se estandariza inmediatamente aparecen mejoras específicas para el mismo elevando los resultados de rendimientos. Si los benchmarks fuesen nuestros programas nos veríamos beneficiados ya que los interesados harían que nuestra aplicación fuese más rápida.

• Los benchmarks reales son difíciles de realizar, situación que se agudiza en los casos de:– Máquina no construida, simuladores más lentos.

– Benchmarks no portables

– Compiladores no disponibles

Page 20: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 20 de 22

Comparación y resumen de rendimientos: Combinación de medidas de rendimiento • ¿Cómo combinar el rendimiento de un conjunto de programas?

trabajo decarga la de programas de Número niésimoprograma del ejecución de Tiempo Ti

))MFLOPS, (ej. frecuenciauna comoexpresa seorendimient el(Si

iin

i i

n

iiMedio T

V donde

V

nT

nT

armónicaMedia aritméticaMedia

11

1

1

1

1.a igual pesos los de Suma iésimo.programa del FrecuenciaiPeso

i

n

iiMedio TPesoT

ponderada aritméticaMedia

*

1

n. de total un de iésimoprograma elpara ,referencia demáquina la para onormalizad ejecución, de TiempooNormalizad

iT

n

n

i

oNormalizadiMedion

i i

i

TT

V

Peso

osnormalizad tiempospara geométricaMedia ponderadaarmónica Media

1

1

1

Page 21: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 21 de 22

• El posible aumento de rendimiento para una mejora dada está limitado por la cantidad que se utiliza la característica mejorada.

• Si suponemos que la mejora acelera una fracción F de la tarea en un factor de S, entonces la ganancia de velocidad (speedup) vendrá dada por:

• Corolario: Hacer rápido el caso común.

Ley de Amdahl

)1( FS

F1

mejorala por afectado no ejecución de Tiempomejorala de Cantidad

mejorala por afectado ejecución de Tiempo

mejorala de después ejecución de Tiempo

mejorala de después ejecución de Tiempo

mejorala de antes ejecución de Tiempo

mejorala de antes oRendimient

mejorala de después oRendimientvelocidadGanancia

F 1-F1

Page 22: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 22 de 22

Ejemplo de ganancia de velocidad (Speedup):Uso de Procesadores Paralelos (I)

• Suponga una aplicación que casi toda es paralela (90%) o lo que es lo mismo, una tarea que puede ejecutarse por varios procesadores simultáneamente.

Número de procesadores: P

• Al pasar de 100 a 1000 procesadores el aumento de rendimiento no ha sido tanto como el esperado. Para aumentarlo es necesario acelerar la parte secuencial del programa o que la fracción factible de ejecutarse en paralelo aumente.

P

SpeedupP 9.01.0

1

3.5

10

9.01.0

110

Speedup 17.9

100

9.01.0

1100

Speedup

91.9

1000

9.01.0

11000

Speedup

Page 23: Estructura de Computadores (EUI: 2º ITIS) Cap 2: Rendimiento de un computador1 de 22 Capítulo 2: Rendimiento de un computador Definición de rendimiento.

Estructura de Computadores (EUI: 2º ITIS)

Cap 2: Rendimiento de un computador 23 de 22

Ejemplo de ganancia de velocidad (Speedup):Uso de Procesadores Paralelos (II)

• Veamos que ocurre si mejoramos en cantidad 2 la parte no paralela:

• Veamos que ocurre si aumentamos la fracción paralelizable en 0.05

• Algunas direcciones de interés relacionadas con el rendimiento:– http://www.specbench.org

– http://performance.netlib.org/performance/html/PDSreports.html

95.16

100

9.0

2

1.01

2,100

Speedup

80.16

100

95.005.0

1100

Speedup