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
Estructura de Computadores (EUI: 2º
ITIS)
Cap 2: Rendimiento de un computador
1 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.
Estructura de Computadores (EUI: 2º
ITIS)
Cap 2: Rendimiento de un computador
2 de 22
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
R e lo j 
M ú ltip le s p ro c e s a d o re s .
T a re a s s e p a ra d a s
P ro c e s a d o r p a ra le lo
S e g m e n ta c ió n
Estructura de Computadores (EUI: 2º
ITIS)
T ie m p o d e re s p u e s ta

P ro d u c tiv id a d

-



-

Cap 2: Rendimiento de un computador
3 de 22
Rendimiento y tiempo de ejecución
• El rendimiento de un computador X es inversamente proporcional al
tiempo de ejecución:
Re n dim iento
X
1

Tiempo de ejecución
X
• Computador X es n% más rápido que el computador Y
Re n dim iento
X
 Re n dim iento
Re n dim iento
Y
* 100  n
Y
• Computador Y es n% más lento que el computador X
Re n dim iento
X
 Re n dim iento
Re n dim iento
Estructura de Computadores (EUI: 2º
ITIS)
Y
* 100  n
X
Cap 2: Rendimiento de un computador
4 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 dim o s?
T ie m p o tra n s c u rrid o
(to ta l: 2 :3 9)
T ie m p o d e C P U
(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 u s u a rio
9 0 .7 s
Estructura de Computadores (EUI: 2º
ITIS)
T ie m p o d e d ica d o a:
E n tra d a /s a lid a , o tro s p ro g ra m as
5 5 .4 s
T ie m p o d e l S is te m a
1 2 .9 s
Cap 2: Rendimiento de un computador
5 de 22
Rendimiento de la CPU:
Ecuación clásica
Reloj
T CPU
=
Nº ciclos reloj por programa
CPI MEDIO
x Tiempo
de ciclo
Nº ciclos de reloj por programa
=
Recuento
de instruccio nes
(CPIMEDIO : Nos permite comparar dos implementaciones de una misma arquitectura)
T
CPU
=
Recuento
de instruccio nes x CPI MEDIO x Tiempo de ciclo
T CPU
Estructura de Computadores (EUI: 2º
ITIS)
=
N * CPI * T C
Cap 2: Rendimiento de un computador
6 de 22
Factores de la ecuación clásica:
Análisis de dependencias
Tiempo _ CPU =
Segundos
Pr o gra ma
Instrucion
es
Pr o gra ma
x
R e c u e n to d e
In s tru c c io n e s
x
Instrucció n
CPI
C o m p ila d o r
x
(x )
R e p e rto rio d e
in s tru c c io n e s
O rg a n iz a c ió n E s tru c tu ra
T e c n o lo g ía
x
x
Estructura de Computadores (EUI: 2º
ITIS)
Ciclos
x
Segundos
Ciclo
= N x CPI x T C
T
P ro g ra m a
=
x
T ie m p o d e C ic lo
x
x
Cap 2: Rendimiento de un computador
7 de 22
Métricas populares de rendimiento (I)
MIPS y MFLOPS
• MIPS (millones de instrucciones por segundo)
MIPS
MIPS
Frecuencia
Nativos
=
Re lativos
del reloj
CPI x 10 6
=
Tiempo
Tiempo
Re f erencia
x MIPS
Re f erencia
No _ estimado
• 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.
Estructura de Computadores (EUI: 2º
ITIS)
Cap 2: Rendimiento de un computador
8 de 22
Métricas populares de rendimiento (II)
MIPS y MFLOPS
• MFLOPS (Millones de operaciones en punto flotante por segundo)
MFLOPS
Nº operacione
s en punto flotante
=
Tiempo de ejecución
. 10 6
• 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:
O p e ra c io n e s
+ , - , * y c o m p a ra r
 , ra íz c u a d ra d a
Exp, seno
Estructura de Computadores (EUI: 2º
ITIS)
Cap 2: Rendimiento de un computador
Pesos
1
4
8
9 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.
Estructura de Computadores (EUI: 2º
ITIS)
Cap 2: Rendimiento de un computador
10 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/HewlettPackard, 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.
Estructura de Computadores (EUI: 2º
ITIS)
Cap 2: Rendimiento de un computador
11 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.
SPECPor programa=
Tiempo de ejecución en un VAX 11/780
Tiempo de ejecución en la máquina a medir
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).
Estructura de Computadores (EUI: 2º
ITIS)
Cap 2: Rendimiento de un computador
12 de 22
SPEC’89
• Mejoras del “compilador” y repercusión en el rendimiento.
80 0
70 0
S P E C p e rfo rm an ce ra tio
60 0
50 0
40 0
30 0
20 0
10 0
0
gcc
e sp res s o
s p ic e
do du c
na sa 7
li
eq ntott
m a trix3 00
fp pp p
to m ca tv
B en ch m ark
C o m piler
E n h an ce d co m piler
Estructura de Computadores (EUI: 2º
ITIS)
Cap 2: Rendimiento de un computador
13 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
Estructura de Computadores (EUI: 2º
ITIS)
Cap 2: Rendimiento de un computador
14 de 22
Programas de SPEC’95
B e n c h m a rk
D e s c rip tio n
go
A rtific ia l in te llig e n c e ; p la y s th e g a m e o f G o
m 8 8 k s im
M o to ro la 8 8 k c h ip s im u la to r; ru n s te s t p ro g ra m
gcc
T h e G n u C c o m p ile r g e n e ra tin g S P A R C c o d e
c o m p re s s
C o m p re s s e s a n d d e c o m p re s s e s file in m e m o ry
li
L is p in te rp re te r
ijp e g
G ra p h ic c o m p re s s io n a n d d e c o m p re s s io n
p e rl
M a n ip u la te s s trin g s a n d p rim e n u m b e rs in th e s p e c ia l-p u rp o s e p ro g ra m m in g la n g u a g e P e rl
v o rte x
A d a ta b a s e p ro g ra m
to m c a tv
A m e s h g e n e ra tio n p ro g ra m
s w im
S h a llo w w a te r m o d e l w ith 5 1 3 x 5 1 3 g rid
su2cor
q u a n tu m p h y s ic s ; M o n te C a rlo s im u la tio n
h y d ro 2 d
A s tro p h y s ic s ; H y d ro d y n a m ic N a iv e r S to k e s e q u a tio n s
m g rid
M u ltig rid s o lv e r in 3 -D p o te n tia l fie ld
a p p lu
P a ra b o lic /e llip tic p a rtia l d iffe re n tia l e q u a tio n s
tru b 3 d
S im u la te s is o tro p ic , h o m o g e n e o u s tu rb u le n c e in a c u b e
apsi
S o lv e s p ro b le m s re g a rd in g te m p e ra tu re , w in d v e lo c ity , a n d d is trib u tio n o f p o llu ta n t
fp p p p
Q u a n tu m c h e m is try
w ave5
P la s m a p h y s ic s ; e le c tro m a g n e tic p a rtic le s im u la tio n
Estructura de Computadores (EUI: 2º
ITIS)
Cap 2: Rendimiento de un computador
15 de 22
Programas de SPEC 2000
Estructura de Computadores (EUI: 2º
ITIS)
Cap 2: Rendimiento de un computador
16 de 22
SPEC’95
• ¿Por qué al duplicar la frecuencia de reloj no se duplica el rendimiento (Pentium)?
P ro c e s a d o r
P e n tiu m
1 0 0 -> 2 0 0 M H z (x 2 )
P e n tiu m P ro
1 5 0 -> 2 0 0 M H z (x 1 .3 3 )
S p e c In t9 5 (m e jo ra )
S p e c F p 9 5 (m e jo ra )
1 .7
1 .4
1 .2 4
1 .1 8
10
10
9
9
8
8
7
7
S P E C fp
S P E C in t
6
6
5
5
4
4
3
3
2
2
1
1
0
0
50
50
10 0
1 50
2 00
1 00
15 0
C lo ck ra te (M H z)
C lo c k rate (M H z )
P e n tiu m
P e n tiu m P ro
Estructura de Computadores (EUI: 2º
ITIS)
20 0
2 50
25 0
Cap 2: Rendimiento de un computador
P e n tiu m
P e n tiu m P ro
17 de 22
Ejemplo: SPEC’95
SPEC'95
Estructura de Computadores (EUI: 2º
ITIS)
DEC 21164
500Mhz
PA-8000
180Mhz
Pentium
Pro
200Mhz
PPC620
200Mhz
R10000
200Mhz
SPECint95b
SPECfp95b
UltraSparc
200Mhz
20
18
16
14
12
10
8
6
4
2
0
Cap 2: Rendimiento de un computador
18 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
Estructura de Computadores (EUI: 2º
ITIS)
Cap 2: Rendimiento de un computador
19 de 22
Comparación y resumen de rendimientos:
Combinación de medidas de rendimiento
• ¿Cómo combinar el rendimiento de un conjunto de programas?
Media aritmética
T Medio 
1
n
Media armónica
n
T
n
i
n
i 1
donde V i 
1
V
i 1
ponderada

i 1
Peso
T Medio 
Ti
 Peso
i
* Ti
i 1
Peso  Frecuencia
i
del programa iésimo. Suma de los pesos igual a 1.
(ej. MFLOPS, ))
Media geométrica
para tiempos normalizad os
n
1
n
ponderada
n
1
i
(Si el rendimient o se expresa como una frecuencia
Media armónica
Media aritmética
T Medio 
n
T
Normalizad o
i
i 1
i
Vi
Normalizad o
T
i
T i  Tiempo de ejecución
Estructura de Computadores (EUI: 2º
ITIS)
 Tiempo de ejecución,
del programa
iésimo
normalizad o para la máquina de referencia , para el programa iésimo de un total de n.
n  Número de programas
Cap 2: Rendimiento de un computador
de la carga de trabajo
20 de 22
Ley de Amdahl
• El posible aumento de rendimiento para una mejora dada está limitado
por la cantidad que se utiliza la característica mejorada.
Ganancia
velocidad
Rendimient o después de la mejora


Rendimient o antes de la mejora
Tiempo de ejecución

Tiempo de ejecución
Tiempo de ejecución
antes de la mejora
después de la mejora
después de la mejora 
Tiempo de ejecución
afectado
Cantidad
por la mejora
 Tiempo de ejecución
no afectado
por la mejora
de la mejora
• 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:
1
F
F
 (1  F )
1-F
1
S
• Corolario: Hacer rápido el caso común.
Estructura de Computadores (EUI: 2º
ITIS)
Cap 2: Rendimiento de un computador
21 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
Speedup
P

1
0 .1 
0 .9
Speedup
10

1
0 .9
0 .1 
 5 .3
Speedup
1000

1
0 .1 
0 .9
100

1
0 .1 
0 .9
 9 . 17
100
10
P
Speedup
 9 . 91
1000
• 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.
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 (II)
• Veamos que ocurre si mejoramos en cantidad 2 la parte no paralela:
Speedup
100 , 2

1
0 .1

2
0 .9
 16 . 95
100
• Veamos que ocurre si aumentamos la fracción paralelizable en 0.05
Speedup
100

1
0 . 05 
0 . 95
 16 . 80
100
• Algunas direcciones de interés relacionadas con el rendimiento:
– http://www.specbench.org
– http://performance.netlib.org/performance/html/PDSreports.html
Estructura de Computadores (EUI: 2º
ITIS)
Cap 2: Rendimiento de un computador
23 de 22
Descargar

Esto es una prueba