Вы находитесь на странице: 1из 77

Rendimiento de la 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

Una disminucin del tiempo de respuesta implica un


aumento de throughput.
Pero, un aumento de throughput no siempre implica
una disminucin del tiempo de respuesta.
2

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

Si una computadora X tiene mejor rendimiento que


una computadora Y:
RendimientoX > RendimientoY
1 / Tiempo de ejecucinX > 1 / Tiempo de ejecucinY
Tiempo de ejecucinX < Tiempo de ejecucinY

Es decir, X es ms rpida que Y.


4

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

Conclusin: A es 1.5 veces ms rpida que B.

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

Tiempo del Sistema


12.9 s

7 de 22

Tiempo
1.

Tiempo de respuesta. Tiempo total para realizar una


tarea. Incluye:

Tiempo de espera en cola.


Accesos a disco.
Accesos a memoria.
Actividades de entrada y salida (I/O).
Overhead del sistema operativo.
Tiempo que el sistema operativo dedica a sus tareas
propias y no al proceso que est ejecutando. Tiempo
de carga, scheduling, recoleccin de basura, etc.
8

Tiempo
2. Tiempo de CPU. Tiempo que la CPU dedica a la
tarea. No incluye tiempo dedicado a correr otras
tareas.

Se puede dividir en:

Tiempo de CPU de usuario. Tiempo que la CPU


dedica al cdigo de la tarea.
Tiempo de CPU de sistema. Tiempo que la CPU
dedica al sistema operativo cuando ste realiza
actividades relacionadas con la tarea. Por ejemplo,
tiempo para cargar la tarea en memoria.
9

Tiempo

En conclusin, se distinguen dos tiempos:


1. Rendimiento del sistema. Tiempo de respuesta en
un sistema sin carga (sin otros usuarios).
2. Rendimiento de la CPU. Tiempo de CPU de usuario.

Las mtricas que veremos se enfocan al rendimiento


de la CPU pero pueden aplicarse tambin al
rendimiento del sistema.
En general, se puede usar cualquier mtrica, siempre
y cuando se mida y compare consistentemente.
10

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.

Para correr en A el programa usa 40 x 109 ciclos de


reloj.
15

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

es tedioso contar el nmero de ciclos de reloj que usa


un programa.
Otra opcin:
Ciclos de reloj = Nmero de instrucciones x CPI

CPI = Promedio de ciclos de reloj por instruccin.


17

CPI
El CPI es til para comparar dos implementaciones de
un conjunto de instrucciones.

Para esto, se comparan los tiempos de ejecucin de un


mismo programa en las dos implementaciones.

18

Ejemplo
La computadora A tiene un periodo de reloj de 250 ps
(pico segundos) y un CPI = 2 para cierto programa.

La computadora B tiene un periodo de reloj de 500 ps


y un CPI = 1.2 para el mismo programa.
Qu computadora es ms rpida y en cuanto?

19

Ejemplo
Se usan la ecuaciones:
Tiempo CPU = Ciclos de reloj para el programa x Periodo del reloj

Ciclos de reloj = Nmero de instrucciones x CPI


Tiempo de CPUA / Tiempo de CPUB = n

20

Ejemplo
Tiempo de CPU para A:
Tiempo CPUA = Ciclos de relojA x Periodo del relojA
= Ciclos de relojA x 250 ps

Ciclos de reloj del programa en la CPU A


Ciclos de relojA = Nmero de instruccionesA x CPIA
=Ix2

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

Ciclos de reloj del programa en la CPU B


Ciclos de relojB = Nmero de instruccionesB x CPIB
= I x 1.2

Al final
Tiempo CPUB = I x 1.2 x 500 ps
= I x 600 ps
22

Conclusin del ejemplo


Tiempo CPUA = I x 500 ps.
Tiempo CPUB = I x 600 ps.

A es ms rpida que B.
Tiempo de CPUB / Tiempo de CPUA
I x 600 ps / I x 500 ps = 1.2

A es ms rpida que B 1.2 veces.

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

No es necesario contar el nmero de ciclos de reloj


del programa.
24

Factores del rendimiento

Los factores son los elementos de la ecuacin de


rendimiento de la CPU.
Nmero de instrucciones del programa.
2. CPI (Nmero de ciclos por instruccin).
3. Periodo de reloj / velocidad del reloj.
1.

En vez del nmero de instrucciones y el CPI se


puede usar el nmero de ciclos del programa.

25

Factores del rendimiento


Cmo se obtiene cada elemento de la ecuacin de
rendimiento?

El tiempo de CPU se obtiene corriendo el programa.


La velocidad, y por lo tanto el periodo del reloj, es
parte de la documentacin de la computadora.

El nmero de instrucciones y el CPI pueden ser ms


complicados.

26

Factores del rendimiento


El nmero de instrucciones se puede obtener:
Contando las instrucciones (sin seudos) del programa.
Usando un simulador del ISA.
Usando un programa profiler.
Usando contadores de hardware (si estn disponibles).
El CPI se puede obtener:
Usando un simulador de la implementacin.
Usando contadores de hardware.
A veces es ms fcil aproximar el nmero de ciclos
como se ver ms adelante.
27

Factores de Rendimiento
TCPU

N ciclos reloj por programa x Tiempo de ciclo

CPIMEDIO =

N ciclos de reloj por programa


Total de instruccio nes

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

TCPU = Recuento de instruccio nes x CPIMEDIO x Tiempo de ciclo

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.

El CPI depende de la implementacin porque


depende de:
La estructura de la memoria.
La estructura del procesador.
Las instrucciones usadas en el programa.
Dos implementaciones de MIPS pueden tener
distintos CPI.
30

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

Descomposicion en tipos de CPI

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.

Cada secuencia requiere el siguiente nmero de


instrucciones de cada clase:
Secuencia
de cdigo

Nmero de instrucciones de cada clase


A
B
C

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.

Qu secuencia ejecuta ms instrucciones?

S1 ejecuta 2 + 1 + 2 = 5 instrucciones.
S2 ejecuta 4 + 1 + 1 = 6 instrucciones.

S1 ejecuta menos instrucciones que S2.

36

Ejemplo
2. Qu secuencia es ms rpida?

es decir, Qu secuencia ejecuta menos ciclos?


Se usa la ecuacin:

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

S2 es ms rpida que S1.


37

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

CPI herramienta de diseo

39

Resumen
Los factores bsicos del rendimiento de la CPU y sus
medidas.
Componente

Unidad de medida

Tiempo de ejecucin de CPU para un Segundos.


programa.
Nmero de instrucciones.

Instrucciones ejecutadas por el


programa.

Ciclos de reloj por instruccin (CPI).

Nmero de ciclos de reloj en


promedio por instruccin.

Periodo de reloj.

Segundos por ciclo 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

Las partes de un programa afectan su tiempo de


ejecucin.
Componente

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

Tiempo de ejecucin y productividad en A y B?

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

Tiempo de CPU = 100 x 1000.000.000x0,4/2,5 ns


= 16 x1000.000.000 ns= 16 s
Procesador B:
tiempo de ciclo = 0,5 ns, CPI medio = 2, recuento de instrucciones un
15% mayor
Tiempo de CPU= 100x1000.000.000x1,15x2x0,5 ns=
= 115x1000.000.000 ns= 115 s

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

Rendimient o despus de la mejora


Tiempo de ejecucin antes de la mejora

Rendimient o antes de la mejora


Tiempo de ejecucin despus de la mejora

Tiempo de ejecucin despus de la mejora

Tiempo de ejecucin afectado por la mejora


Tiempo de ejecucin no afectado por la mejora
Cantidad de la mejora

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

Corolario: Hacer rpido el caso comn.

Ej. de ganancia de velocidad (Speedup):


Uso de Procesadores Paralelos (I)
Suponga una aplicacin que casi toda es paralela (90%) o
lo que es lo mismo, una tarea que puede ejecutarse por
varios procesadores simultneamente.

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.

Ejemplo de ganancia de velocidad


(Speedup):Uso de Procesadores Paralelos (II)
Veamos que ocurre si mejoramos en cantidad 2 la
parte no paralela:
Speedup100, 2

1
0.1 0.9

2 100

16.95

Veamos que ocurre si aumentamos la fraccin


paralelizable en 0.05
Speedup100

1
0.95
0.05
100

16.80

Ley de Amdahl (ganancia decreciente)

54

Ley de Rendimiento Decreciente

55

CPI en ejecucin Mltiple

56

Paralelismo de Instrucciones

57

Ejemplos y Aplicaciones

58

Tiempo de ejecucin
El tiempo de ejecucin mejorado es igual al tiempo que no se

usa la mejora mas el tiempo que si usa la mejora.

Fraccin mejora

Tiempo de ejecucin nuevo Tiempo de ejecucin viejo (1 - Fraccin mejora)


Speedupmejora

Ejemplo
Tiempo de ejecucin original: 60 segundos.
Mejora: 20 segundos se hacen ahora en 12.

Fraccinmejora: 20/60 = 0.333.


Speedupmejora: 20/12 = 1.667.
Tiempo de ejecucin con la mejora:

60 x ((1 0.333) + 0.333/1.667) =


60 x (0.667 + 0.2) =
60 x (0.867) =52

Speedup global
El speedup global es:

Tiempo de ejecucin original


Speedupglobal
Tiempo de ejecucin mejora
Alternativamente:

Speedupglobal

1
(1 - Fraccin mejora)

Arquitectura de Computadoras

Fraccin mejora
Speedupmejora

61

Ejemplo
Fraccinmejora: 20/60 = 0.333.
Speedupmejora: 20/12 = 1.667.

Tiempo de ejecucin original: 60 segundos.


Tiempo de ejecucin con la mejora: 52 segundos.
Speedupglobal = 60 / 52 = 1.15.

Speedupglobal = 1 / ((1 0.333) + (0.333 / 1.667)) = 1.15.

Otro ejemplo
Un programa tarda 100 segundos en correr.

El programa pasa 80 segundos en un procedimiento.


Qu tanto se debe mejorar ese procedimiento para
que todo el programa corra 5 veces ms rpido?

63

Otro ejemplo
Usamos la ley de Amdahl:

Fraccin mejora

Tiempo de ejecucin nuevo Tiempo de ejecucin viejo (1 - Fraccin mejora)


Speedup
mejora

Tiempo de ejecucin original: 100 segundos.

Tiempo de ejecucin nuevo: 20 segundos.


Fraccin mejorada: 80 / 100 = 0.8
Falta por saber el speedup de la 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

No hay forma de que el programa mejorado corra


en 20 segundos.

Corolario de la ley de Amdahl


El speedup global est limitado por la fraccin del programa

que se puede mejorar.

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.

Cul es el speedup global con la nueva CPU?

Ejemplo
Fraccin que se puede mejorar: 40% = 0.4.
Speedup de la mejora: 10.

El corolario de la ley de Amdahl limita el speedup


global:

Speedupglobal < 1 / (1 0.4) = 1.67


Usando la ley de Amdahl, el speedup global es:
Speedupglobal

1
(1 - Fraccin mejora)

Fraccin mejora
Speedupmejora

Ejemplo
El speedup global es:

1 / ((1 0.4) + (0.4 / 10)) = 1.56


El servidor con la nueva CPU es 1.56 veces ms rpido
que el servidor con la antigua CPU.

Aplicaciones

La ley de Amdahl se puede usar para comparar entre


dos opciones.
Se quiere mejorar un programa que hace ciertos
clculos. Hay dos opciones:
Comprar un chip que acelera el 20% del programa 10
veces.
2. Recodificar el 50% del programa para que corra 1.6
veces ms rpido.
1.

Qu opcin ofrece mejor speedup?

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

No hay mucha diferencia entre 1.219 y 1.231.

Hay que considerar otros factores en la decisin.

Aplicaciones
La ley de Amdahl se puede usar en otros estudios.

Un sistema de discos en un centro de cmputo tiene varios

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

La confiabilidad del sistema con dos fuentes de


poder es 1.28 veces que con una sola fuente de poder.

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}

Commodities: productos proporcionados por mltiples vendedores, que


esencialmente son iguales: mayor competencia menorcoste y Precio
Costes en un PC de sobremesa
Procesador: 20%, Memoria: 5%Tarjeta Grfica:5%, Perifricos: 40%,
S/W:20%
77

Вам также может понравиться