Rendimiento Cpu
Rendimiento Cpu
Rendimiento Cpu
y sus factores
Rendimiento
Cmo se puede definir el rendimiento de un sistema
computacional?
Tiempo de respuesta (tiempo de ejecucin). Tiempo
entre el comienzo y finalizacin de una tarea.
Throughput. Cantidad de trabajo hecho en un
tiempo dado. Una mejor medida desde el punto de
vista del sistema pero no desde el punto de vista del
usuario
Ejemplo
Reemplazar CPUs viejas por nuevas disminuye el
tiempo de respuesta y aumenta el throughput
(cantidad de trabajo hecho).
Aumentar el nmero de computadoras aumenta el
throughput pero no disminuye el tiempo de
respuesta.
A menos que hubiera colas. En este caso, el aumento
en el nmero de computadoras aumenta el
throughput y si disminuye el tiempo de respuesta.
Definicin de rendimiento
El rendimiento de una computadora X es:
Rendimient oX
1
Tiempo de ejecucin X
Rendimiento relativo
X es n veces ms rpida que Y significa:
Rendimient oX
n 1
Rendimient oY
Alternativamente:
Tiempo de ejecucinY
n 1
Tiempo de ejecucinX
Ejemplo
La computadora A corre un programa en 10 segundos
y la computadora B en 15 segundos.
RendimientoA / RendimientoB =
Tiempo de ejecucinB / Tiempo de ejecucinA =
15 / 10 =
1.5
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%
Qu tiempo medimos?
Tiempo transcurrido
(total: 2:39)
Tiempo de CPU
(Dedicado a nuestra tarea)
90.7 s + 12.9 s = 103.6 s (65%)
Tiempo de usuario
90.7 s
Tiempo dedicado a:
Entrada/salida, otros programas
55.4 s
7 de 22
Tiempo
1.
Tiempo
2. Tiempo de CPU. Tiempo que la CPU dedica a la
tarea. No incluye tiempo dedicado a correr otras
tareas.
Tiempo
Reloj
El reloj del sistema determina cuando los eventos
ocurren en el hardware.
1. Periodo de reloj. Tiempo en que ocurre un ciclo
(pulso) de reloj Se mide en fracciones de segundo.
Por ejemplo 0.25 nanosegundos.
2. Velocidad de reloj. Es el inverso del periodo. Se mide
en ciclos por segundo. Por ejemplo 4GHz
(gigahertz).
Reloj
11
Rendimiento de la CPU
El tiempo de ejecucin de CPU de un programa:
Tiempo CPU = Ciclos de reloj para el programa x Periodo del reloj
Alternativamente
Tiempo CPU = Ciclos de reloj para el programa / Velocidad del reloj
12
Rendimiento de la CPU
El tiempo de CPU de un programa puede mejorar
(disminuir) si:
El programa corre ms rpido (usa menos ciclos de
reloj).
El periodo de reloj de la CPU disminuye y por lo tanto,
aumenta la velocidad del reloj.
13
Ejemplo
Un programa tarda 10 segundos en correr en una
computadora A que tiene una velocidad de reloj de
4 GHZ.
Se desea construir una computadora B que corra el
mismo programa en 6 segundos.
Por problemas de diseo, B va a necesitar 1.2 veces
mas ciclos de reloj que A para hacer la misma tarea.
Cul debe ser la velocidad de reloj de B para cumplir
la meta?
14
Ejemplo
Encontrar el nmero de ciclos que usa el programa
en A.
Tiempo CPUA = Ciclos relojA / Velocidad relojA
10 segundos = Ciclos relojA / (4x109 ciclos / segundo)
Ciclos relojA = 10 segundos x (4x109 ciclos / segundo)
= 40 x 109 ciclos.
Ejemplo
Encontrar la velocidad de B, sabiendo que B va a
necesitar 1.2 x 40 x 109 ciclos para correr el programa.
Tiempo CPUB = Ciclos relojB / Velocidad relojB
6 segundos = (1.2 x 40 x 109 ciclos) / Velocidad relojB
Velocidad relojB = (1.2 x 40 x 109 ciclos) / 6 segundos
= 8 x 109 ciclos / segundo
= 8 GHz
B debe tener el doble de velocidad que A para ejecutar
el programa en 6 segundos.
16
Ciclos de reloj
En la ecuacin
Tiempo CPU = Ciclos de reloj / Velocidad del reloj
CPI
El CPI es til para comparar dos implementaciones de
un conjunto de instrucciones.
18
Ejemplo
La computadora A tiene un periodo de reloj de 250 ps
(pico segundos) y un CPI = 2 para cierto programa.
19
Ejemplo
Se usan la ecuaciones:
Tiempo CPU = Ciclos de reloj para el programa x Periodo del reloj
20
Ejemplo
Tiempo de CPU para A:
Tiempo CPUA = Ciclos de relojA x Periodo del relojA
= Ciclos de relojA x 250 ps
Al final
Tiempo CPUA = I x 2 x 250 ps
= I x 500 ps
21
Ejemplo
Tiempo de CPU para B:
Tiempo CPUB = Ciclos de relojB x Periodo del relojB
= Ciclos de relojB x 500 ps
Al final
Tiempo CPUB = I x 1.2 x 500 ps
= I x 600 ps
22
A es ms rpida que B.
Tiempo de CPUB / Tiempo de CPUA
I x 600 ps / I x 500 ps = 1.2
23
Rendimiento de la CPU
La ecuacin de rendimiento de la CPU puede
reescribirse como:
Tiempo CPU = Nmero de instrucciones x CPI x Periodo del reloj
Alternativamente
Tiempo CPU = (Nmero de instrucciones x CPI) / Velocidad del reloj
25
26
Factores de Rendimiento
TCPU
CPIMEDIO =
CPU
N * CPI * T
28
Factores de Rendimiento
Tiempo _ CPU
Segundos
Instruccio nes
Ciclos
Segundos
x
x
Pr ograma
Pr ograma
Instrucci n
Ciclo
Programa
N x CPI x T
Recuento de
Instrucciones
x
CPI
Compilador
(x)
Repertorio de
instrucciones
OrganizacinEstructura
Tecnologa
x
x
Tiempo de Ciclo
x
x
29
Consideraciones
El nmero de instrucciones depende del conjunto de
instrucciones (el ISA) y no de la implementacin.
Nmero de ciclos
El nmero de ciclos se puede aproximar usando:
donde
Ci es el nmero de instrucciones de clase i ejecutadas.
CPIi es el promedio del nmero de ciclos por
instruccin para la clase i.
n es el nmero de clases de instrucciones.
31
32
Ejemplo
Hay 3 clases de instrucciones: A, B y C, cada una con
su propio CPI.
CPI por clase
CPI
33
Ejemplo
Hay dos secuencias de cdigo, S1 y S2, que se quieren
comparar.
S1
S2
34
Ejemplo
Qu secuencia ejecuta ms instrucciones?
2. Qu secuencia es ms rpida?
3. Cul es el CPI de cada secuencia?
1.
35
Ejemplo
1.
S1 ejecuta 2 + 1 + 2 = 5 instrucciones.
S2 ejecuta 4 + 1 + 1 = 6 instrucciones.
36
Ejemplo
2. Qu secuencia es ms rpida?
Ciclos de S1 = (2 x 1) + (1 x 2) + (2 x 3) = 10 ciclos
Ciclos de S2 = (4 x 1) + (1 x 2) + (1 x 3) = 9 ciclos
Ejemplo
3. Cul es el CPI de cada secuencia?
Se usa la ecuacin:
CPI = Nmero de ciclos / Nmero de instrucciones.
Para S1 CPI = 10 / 5 = 2
Para S2 CPI = 9 / 6 = 1.5
38
39
Resumen
Los factores bsicos del rendimiento de la CPU y sus
medidas.
Componente
Unidad de medida
Periodo de reloj.
40
Resumen
Sin olvidarse de:
Nmero de ciclos de reloj del programa = nmero de
instrucciones x CPI.
Velocidad del reloj = 1 / periodo de reloj.
41
Conclusion
Al comparar dos computadoras no basta fijarse en una
sola medida, hay que ver las 3 al mismo tiempo:
Nmero de instrucciones.
CPI.
Periodo de reloj.
Las 3 medidas juntas forman el tiempo de ejecucin
de CPU del programa.
42
Qu afectan?
Algoritmo.
Nmero de instrucciones.
Tal vez el CPI.
Lenguaje de programacin.
Nmero de instrucciones.
CPI.
Compilador
Nmero de instrucciones.
CPI.
ISA (conjunto de
instrucciones)
Nmero de instrucciones.
CPI.
Periodo de reloj.
43
Ejemplo
ProgramaP
Procesador A:2,5 GHz, 0,4 instrucciones/ciclo (CPI) de
media, recuento de instrucciones: 100 mil millones
Procesador B:
tiempo de ciclo = 0,5 ns, CPI medio = 2, recuento de
instrucciones un 15% mayor
44
Ejemplo
Tiempo CPU = Nmero de instrucciones x CPI x Periodo del reloj
Tiempo CPU = (Nmero de instrucciones x CPI) / Velocidad del
reloj
Procesador A:2,5 GHz, 0,4 instrucciones/ciclo (CPI) de media,
recuento de instrucciones: 100 mil millones
45
Ejemplo
Programa P y Procesador B:
tiempo de ciclo = 0,5 ns, CPI medio = 2, recuento de
instrucciones es N
Modificacin: se reduce tiempo de ciclo a 0,4 ns, las
instrucciones de acceso a memoria (20% de las
instrucciones totales) pasan de 3 a 4 ciclos de latencia
media (CPI del resto de instrucciones el mismo)
Cul es la mejora debida a la modificacin?
46
Ejemplo
Tiempo CPU = Nmero de instrucciones x CPI x Periodo del reloj
Programa P y Procesador B:
tiempo de ciclo = 0,5 ns, CPI medio = 2, recuento de instrucciones es N
T CPU = N x 2x 0,5 ns = N ns
Modificacin: se reduce tiempo de ciclo a 0,4 ns, las instrucciones de
acceso a memoria (20% de las instrucciones totales) pasan de 3 a 4
ciclos de latencia media (CPI del resto de instrucciones el mismo)
TCPU = 0,8 N x 2x0,4 +0,2 Nx4x0,4 = 0,64N+ 0,32N =0,96 N
Rendimiento= 1,04
47
Ley de Amdahl
48
Ley de Amdahl
El posible aumento de rendimiento para una mejora
dada est limitado por la cantidad que se utiliza la
caracterstica mejorada.
Ganancia velocidad
Ley de Amdahl
Si suponemos que la mejora acelera una fraccin F de
la tarea en un factor de S, entonces la ganancia de
velocidad (speedup) vendr dada por:
1
F
(1 F )
S
1-F
Nmero de procesadores: P
Speedup P
Speedup100
1
0.9
0.1
P
1
0.9
0.1
100
9.17
Speedup10
Speedup1000
1
0.1
0.9
10
1
0.9
0.1
1000
5.3
9.91
Conclusion
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 fraccin factible de ejecutarse
en paralelo aumente.
1
0.1 0.9
2 100
16.95
1
0.95
0.05
100
16.80
54
55
56
Paralelismo de Instrucciones
57
Ejemplos y Aplicaciones
58
Tiempo de ejecucin
El tiempo de ejecucin mejorado es igual al tiempo que no se
Fraccin mejora
Ejemplo
Tiempo de ejecucin original: 60 segundos.
Mejora: 20 segundos se hacen ahora en 12.
Speedup global
El speedup global es:
Speedupglobal
1
(1 - Fraccin mejora)
Arquitectura de Computadoras
Fraccin mejora
Speedupmejora
61
Ejemplo
Fraccinmejora: 20/60 = 0.333.
Speedupmejora: 20/12 = 1.667.
Otro ejemplo
Un programa tarda 100 segundos en correr.
63
Otro ejemplo
Usamos la ley de Amdahl:
Fraccin mejora
Otro ejemplo
20 = 100 x ((1 0.8) + (0.8 / Speedupmejora))
20 = 100 x (0.2 + 0.8 / Speedupmejora)
20 = 20 x 80 / Speedupmejora
20 20 = 80 / Speedupmejora
0 = 80 / Speedupmejora
1
Speedupglobal
1 - Fraccin mejora
Cmo se interpreta ese lmite cuando Fraccinmejora es 1?
Ejemplo
Se tiene un servidor de Web.
Se le cambia la CPU por una CPU que es 10 veces ms
rpida que la antigua.
La CPU antigua estaba 40% del tiempo haciendo
clculos y 60% ociosa esperando I/O.
Ejemplo
Fraccin que se puede mejorar: 40% = 0.4.
Speedup de la mejora: 10.
1
(1 - Fraccin mejora)
Fraccin mejora
Speedupmejora
Ejemplo
El speedup global es:
Aplicaciones
Aplicaciones
Se usa la ley de Amdahl:
Speedupglobal
1
(1 - Fraccin mejora)
Fraccin mejora
Speedupmejora
Opcin 1:
Fraccinmejora = 0.2
Speedupmejora = 10
Speedupglobal = 1 / ((1 0.2) + (0.2 / 10)) = 1.219
Aplicaciones
Opcin 2:
Fraccinmejora = 0.5
Speedupmejora = 1.6
Speedupglobal = 1 / ((1 0.5) + (0.5 / 1.6)) = 1.231
Aplicaciones
La ley de Amdahl se puede usar en otros estudios.
componentes.
Cuando se presenta una falla, el porcentaje de que sea alguno de
los componentes es como sigue:
Componente
Porcentaje
Discos
43%
Controlador SCSI
9%
Fuente de poder
22%
Abanico
22%
Cable SCSI
4%
Aplicaciones
Un estudio determina que instalando otra fuente de
poder eleva la confiabilidad (tiempo medio entre
fallas) de las fuentes de poder en 4,150 veces.
Qu tanto se eleva la confiabilidad de todo el sistema
de discos?
Aplicaciones
La ley de Amdahl se puede adaptar:
1
Confiabili dadglobal
(1 Fraccin mejora)
Fraccin mejora
Confiabili dadmejora
Fraccinmejora = 0.22.
Confiabilidadmejora = 4150.
La confiabilidad global es:
1 / ((1 0.22) + (0.22 / 4150) = 1.28
Costos
Diferentes LMITES segn la aplicacin:
1.Dinero:
-mximas prestaciones para presupuesto fijo
-buena relacin prestaciones / dinero
2.Consumoenergtico
-tareas realizadas por carga de energa en una batera
3.Potencia requerida / Calor generado
-sobremesa / porttil / PDA / telfono mvil
4.Espacio fsico disponible
-sistema empotrado o superordenador
76
Costo de un microprocesador
Costo Precio
Costo= Recursos (materiales, humanos, ) para producir
procesador
Precio= Valor de venta (ganancia, publicidad, )
Costo: crece mucho con el rea del chip
El Costo de Produccin decrece con el tiempo}
Curva de aprendizaje: menos productos desechados en la produccin
Volumen de produccin: cuanto mayor, menor es el coste por unidad}