rendimiento cpu
DESCRIPTION
Documento util para aprender a calcular el rendimiento de la cpu. Ademas de materia utilTRANSCRIPT
![Page 1: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/1.jpg)
Rendimiento de la CPU y sus factores
![Page 2: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/2.jpg)
2
Rendimiento ¿Cómo se puede definir el rendimiento de un sistema
computacional?
Tiempo de respuesta (tiempo de ejecución). Tiempo entre el comienzo y finalización 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 disminución del tiempo de respuesta implica un aumento de throughput.
Pero, un aumento de throughput no siempre implica una disminución del tiempo de respuesta.
![Page 3: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/3.jpg)
3
Ejemplo Reemplazar CPUs viejas por nuevas disminuye el
tiempo de respuesta y aumenta el throughput (cantidad de trabajo hecho).
Aumentar el número de computadoras aumenta el throughput pero no disminuye el tiempo de respuesta.
A menos que hubiera colas. En este caso, el aumento en el número de computadoras aumenta el throughput y si disminuye el tiempo de respuesta.
![Page 4: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/4.jpg)
4
Definición de rendimiento El rendimiento de una computadora X es:
Si una computadora X tiene mejor rendimiento que una computadora Y:
RendimientoX > RendimientoY
1 / Tiempo de ejecuciónX > 1 / Tiempo de ejecuciónY
Tiempo de ejecuciónX < Tiempo de ejecuciónY
Es decir, X es más rápida que Y.
X
X
ejecución de Tiempo
1 oRendimient
![Page 5: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/5.jpg)
5
Rendimiento relativo “X es n veces más rápida que Y” significa:
Alternativamente:
1oYRendimient
oXRendimient n
1ejecuciónX de Tiempo
ejecuciónY de Tiempo n
![Page 6: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/6.jpg)
6
Ejemplo La computadora A corre un programa en 10 segundos
y la computadora B en 15 segundos.
RendimientoA / RendimientoB =
Tiempo de ejecuciónB / Tiempo de ejecuciónA =
15 / 10 =
1.5
Conclusión: A es 1.5 veces más rápida que B.
![Page 7: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/7.jpg)
7 de 22
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 de usuario90.7 s
Tiempo del Sistema12.9 s
Tiempo de CPU(Dedicado a nuestra tarea)
90.7 s + 12.9 s = 103.6 s (65%)
Tiempo dedicado a:Entrada/salida, otros programas
55.4 s
Tiempo transcurrido(total: 2:39)
![Page 8: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/8.jpg)
8
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, recolección de basura, etc.
![Page 9: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/9.jpg)
9
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 código 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.
![Page 10: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/10.jpg)
10
Tiempo En conclusión, 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 métricas que veremos se enfocan al rendimiento de la CPU pero pueden aplicarse también al rendimiento del sistema.
En general, se puede usar cualquier métrica, siempre y cuando se mida y compare consistentemente.
![Page 11: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/11.jpg)
11
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
![Page 12: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/12.jpg)
12
Rendimiento de la CPU El tiempo de ejecución 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
![Page 13: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/13.jpg)
13
Rendimiento de la CPU El tiempo de CPU de un programa puede mejorar
(disminuir) si:
El programa corre más rápido (usa menos ciclos de reloj).
El periodo de reloj de la CPU disminuye y por lo tanto, aumenta la velocidad del reloj.
![Page 14: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/14.jpg)
14
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 diseño, B va a necesitar 1.2 veces mas ciclos de reloj que A para hacer la misma tarea.
¿Cuál debe ser la velocidad de reloj de B para cumplir la meta?
![Page 15: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/15.jpg)
15
Ejemplo Encontrar el número 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.
![Page 16: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/16.jpg)
16
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.
![Page 17: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/17.jpg)
17
Ciclos de reloj En la ecuación
Tiempo CPU = Ciclos de reloj / Velocidad del reloj
es tedioso contar el número de ciclos de reloj que usa un programa.
Otra opción:
Ciclos de reloj = Número de instrucciones x CPI
CPI = Promedio de ciclos de reloj por instrucción.
![Page 18: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/18.jpg)
18
CPI El CPI es útil para comparar dos implementaciones de
un conjunto de instrucciones.
Para esto, se comparan los tiempos de ejecución de un mismo programa en las dos implementaciones.
![Page 19: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/19.jpg)
19
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 más rápida y en cuanto?
![Page 20: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/20.jpg)
20
Ejemplo Se usan la ecuaciones:
Tiempo CPU = Ciclos de reloj para el programa x Periodo del reloj
Ciclos de reloj = Número de instrucciones x CPI
Tiempo de CPUA / Tiempo de CPUB = n
![Page 21: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/21.jpg)
21
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 = Número de instruccionesA x CPIA
= I x 2
Al final
Tiempo CPUA = I x 2 x 250 ps
= I x 500 ps
![Page 22: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/22.jpg)
22
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 = Número de instruccionesB x CPIB
= I x 1.2
Al final
Tiempo CPUB = I x 1.2 x 500 ps
= I x 600 ps
![Page 23: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/23.jpg)
23
Conclusión del ejemplo Tiempo CPUA = I x 500 ps.
Tiempo CPUB = I x 600 ps.
A es más rápida que B.
Tiempo de CPUB / Tiempo de CPUA
I x 600 ps / I x 500 ps = 1.2
A es más rápida que B 1.2 veces.
![Page 24: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/24.jpg)
24
Rendimiento de la CPU La ecuación de rendimiento de la CPU puede
reescribirse como:
Tiempo CPU = Número de instrucciones x CPI x Periodo del reloj
Alternativamente
Tiempo CPU = (Número de instrucciones x CPI) / Velocidad del reloj
No es necesario contar el número de ciclos de reloj del programa.
![Page 25: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/25.jpg)
25
Factores del rendimiento Los factores son los elementos de la ecuación de
rendimiento de la CPU.
1. Número de instrucciones del programa.
2. CPI (Número de ciclos por instrucción).
3. Periodo de reloj / velocidad del reloj.
En vez del número de instrucciones y el CPI se puede usar el número de ciclos del programa.
![Page 26: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/26.jpg)
26
Factores del rendimiento ¿Cómo se obtiene cada elemento de la ecuación 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 documentación de la computadora.
El número de instrucciones y el CPI pueden ser más complicados.
![Page 27: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/27.jpg)
27
Factores del rendimiento El número 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 están disponibles).
El CPI se puede obtener:
Usando un simulador de la implementación.
Usando contadores de hardware.
A veces es más fácil aproximar el número de ciclos como se verá más adelante.
![Page 28: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/28.jpg)
28
ciclo de Tiempoprograma por reloj ciclos NºT x =CPU
nesinstruccio de Total
programapor 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
Factores de Rendimiento
![Page 29: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/29.jpg)
TCPINT Cxx
Ciclo
Segundosx
nInstrucció
Ciclosx
ograma
nesInstruccio
ograma
SegundosCPUTiempo
PrPr
_
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 Rendimiento
29
![Page 30: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/30.jpg)
30
Consideraciones El número de instrucciones depende del conjunto de
instrucciones (el ISA) y no de la implementación.
El CPI depende de la implementación 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.
![Page 31: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/31.jpg)
31
Número de ciclos El número de ciclos se puede aproximar usando:
donde
Ci es el número de instrucciones de clase i ejecutadas.
CPIi es el promedio del número de ciclos por instrucción para la clase i.
n es el número de clases de instrucciones.
![Page 32: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/32.jpg)
Descomposicion en tipos de CPI
32
![Page 33: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/33.jpg)
33
Ejemplo Hay 3 clases de instrucciones: A, B y C, cada una con
su propio CPI.
CPI por clase
A B C
CPI 1 2 3
![Page 34: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/34.jpg)
34
Ejemplo Hay dos secuencias de código, S1 y S2, que se quieren
comparar.
Cada secuencia requiere el siguiente número de instrucciones de cada clase:
Secuencia de código
Número de instrucciones de cada clase
A B C
S1 2 1 2
S2 4 1 1
![Page 35: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/35.jpg)
35
Ejemplo 1. ¿Qué secuencia ejecuta más instrucciones?
2. ¿Qué secuencia es más rápida?
3. ¿Cuál es el CPI de cada secuencia?
![Page 36: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/36.jpg)
36
Ejemplo 1. ¿Qué secuencia ejecuta más instrucciones?
S1 ejecuta 2 + 1 + 2 = 5 instrucciones.
S2 ejecuta 4 + 1 + 1 = 6 instrucciones.
S1 ejecuta menos instrucciones que S2.
![Page 37: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/37.jpg)
37
Ejemplo 2. ¿Qué secuencia es más rápida?
es decir, ¿Qué secuencia ejecuta menos ciclos?
Se usa la ecuación:
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 más rápida que S1.
![Page 38: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/38.jpg)
38
Ejemplo 3. ¿Cuál es el CPI de cada secuencia?
Se usa la ecuación:
CPI = Número de ciclos / Número de instrucciones.
Para S1 CPI = 10 / 5 = 2
Para S2 CPI = 9 / 6 = 1.5
![Page 39: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/39.jpg)
CPI herramienta de diseño
39
![Page 40: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/40.jpg)
40
Resumen Los factores básicos del rendimiento de la CPU y sus
medidas.
Componente Unidad de medida
Tiempo de ejecución de CPU para un programa.
Segundos.
Número de instrucciones. Instrucciones ejecutadas por el programa.
Ciclos de reloj por instrucción (CPI). Número de ciclos de reloj en promedio por instrucción.
Periodo de reloj. Segundos por ciclo de reloj.
![Page 41: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/41.jpg)
41
Resumen Sin olvidarse de:
Número de ciclos de reloj del programa = número de instrucciones x CPI.
Velocidad del reloj = 1 / periodo de reloj.
![Page 42: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/42.jpg)
42
Conclusion Al comparar dos computadoras no basta fijarse en una
sola medida, hay que ver las 3 al mismo tiempo:
Número de instrucciones.
CPI.
Periodo de reloj.
Las 3 medidas juntas forman el tiempo de ejecución de CPU del programa.
![Page 43: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/43.jpg)
43
Las partes de un programa afectan su tiempo de ejecución.
Componente ¿Qué afectan?
Algoritmo. Número de instrucciones.
Tal vez el CPI.
Lenguaje de programación. Número de instrucciones.
CPI.
Compilador Número de instrucciones.
CPI.
ISA (conjunto de instrucciones)
Número de instrucciones.
CPI.
Periodo de reloj.
![Page 44: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/44.jpg)
Ejemplo
44
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 ejecución y productividad en A y B?
![Page 45: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/45.jpg)
Ejemplo
45
Tiempo CPU = Número de instrucciones x CPI x Periodo 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
Tiempo CPU = (Número de instrucciones x CPI) / Velocidad del
reloj
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
![Page 46: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/46.jpg)
Ejemplo
46
Programa P y Procesador B:
tiempo de ciclo = 0,5 ns, CPI medio = 2, recuento de
instrucciones es N
Modificación: 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)
¿Cuál es la mejora debida a la modificación?
![Page 47: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/47.jpg)
Ejemplo
47
Tiempo CPU = Número 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
Modificación: 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
![Page 48: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/48.jpg)
Ley de Amdahl
48
![Page 49: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/49.jpg)
El posible aumento de rendimiento para una mejora dada está limitado por la cantidad que se utiliza la característica mejorada.
Ley de Amdahl
mejora lapor afectado noejecución de Tiempomejora la de Cantidad
mejora lapor afectadoejecución de Tiempo
mejora la de despuésejecución de Tiempo
mejora la de despuésejecución de Tiempo
mejora la de antesejecución de Tiempo
mejora la de antes oRendimient
mejora la de después oRendimient velocidadGanancia
![Page 50: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/50.jpg)
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
F
1
F 1-F
1
![Page 51: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/51.jpg)
Ej. 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
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 52: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/52.jpg)
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.
Conclusion
![Page 53: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/53.jpg)
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
95.16
100
9.0
2
1.0
12,100
Speedup
80.16
100
95.005.0
1100
Speedup
![Page 54: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/54.jpg)
Ley de Amdahl (ganancia decreciente)
54
![Page 55: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/55.jpg)
Ley de Rendimiento Decreciente
55
![Page 56: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/56.jpg)
CPI en ejecución Múltiple
56
![Page 57: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/57.jpg)
Paralelismo de Instrucciones
57
![Page 58: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/58.jpg)
58
Ejemplos y Aplicaciones
![Page 59: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/59.jpg)
Tiempo de ejecución El tiempo de ejecución mejorado es igual al tiempo que no se
usa la mejora mas el tiempo que si usa la mejora.
mejora
mejoramejoraviejonuevo
Speedup
Fracción )Fracción - (1 ejecución de Tiempo ejecución de Tiempo
![Page 60: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/60.jpg)
Ejemplo Tiempo de ejecución original: 60 segundos.
Mejora: 20 segundos se hacen ahora en 12.
Fracciónmejora: 20/60 = 0.333.
Speedupmejora: 20/12 = 1.667.
Tiempo de ejecución con la mejora:
60 x ((1 – 0.333) + 0.333/1.667) =
60 x (0.667 + 0.2) =
60 x (0.867) =52
![Page 61: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/61.jpg)
Arquitectura de Computadoras 61
Speedup global El speedup global es:
mejora
originalglobal
ejecución de Tiempo
ejecución de Tiempo Speedup
Alternativamente:
mejora
mejoramejora
global
Speedup
Fracción )Fracción - (1
1 Speedup
![Page 62: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/62.jpg)
Ejemplo Fracciónmejora: 20/60 = 0.333.
Speedupmejora: 20/12 = 1.667.
Tiempo de ejecución original: 60 segundos.
Tiempo de ejecución con la mejora: 52 segundos.
Speedupglobal = 60 / 52 = 1.15.
Speedupglobal = 1 / ((1 – 0.333) + (0.333 / 1.667)) = 1.15.
![Page 63: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/63.jpg)
63
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 más rápido?
![Page 64: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/64.jpg)
Otro ejemplo Usamos la ley de Amdahl:
Tiempo de ejecución original: 100 segundos.
Tiempo de ejecución nuevo: 20 segundos.
Fracción mejorada: 80 / 100 = 0.8
Falta por saber el speedup de la mejora.
mejora
mejoramejoraviejonuevo
Speedup
Fracción )Fracción - (1 ejecución de Tiempo ejecución de Tiempo
![Page 65: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/65.jpg)
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.
![Page 66: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/66.jpg)
Corolario de la ley de Amdahl El speedup global está limitado por la fracción del programa
que se puede mejorar.
mejora
global
Fracción - 1
1 Speedup
¿Cómo se interpreta ese límite cuando Fracciónmejora es 1?
![Page 67: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/67.jpg)
Ejemplo Se tiene un servidor de Web.
Se le cambia la CPU por una CPU que es 10 veces más rápida que la antigua.
La CPU antigua estaba 40% del tiempo haciendo cálculos y 60% ociosa esperando I/O.
¿Cuál es el speedup global con la nueva CPU?
![Page 68: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/68.jpg)
Ejemplo Fracción 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:
mejora
mejoramejora
global
Speedup
Fracción )Fracción - (1
1 Speedup
![Page 69: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/69.jpg)
Ejemplo El speedup global es:
1 / ((1 – 0.4) + (0.4 / 10)) = 1.56
El servidor con la nueva CPU es 1.56 veces más rápido que el servidor con la antigua CPU.
![Page 70: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/70.jpg)
Aplicaciones La ley de Amdahl se puede usar para comparar entre
dos opciones.
Se quiere mejorar un programa que hace ciertos cálculos. Hay dos opciones:
1. Comprar un chip que acelera el 20% del programa 10 veces.
2. Recodificar el 50% del programa para que corra 1.6 veces más rápido.
¿Qué opción ofrece mejor speedup?
![Page 71: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/71.jpg)
Aplicaciones Se usa la ley de Amdahl:
Opción 1:
Fracciónmejora = 0.2
Speedupmejora = 10
Speedupglobal = 1 / ((1 – 0.2) + (0.2 / 10)) = 1.219
mejora
mejoramejora
global
Speedup
Fracción )Fracción - (1
1 Speedup
![Page 72: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/72.jpg)
Aplicaciones Opción 2:
Fracciónmejora = 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 decisión.
![Page 73: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/73.jpg)
Aplicaciones La ley de Amdahl se puede usar en otros estudios.
Un sistema de discos en un centro de cómputo 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%
![Page 74: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/74.jpg)
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?
![Page 75: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/75.jpg)
Aplicaciones La ley de Amdahl se puede adaptar:
Fracciónmejora = 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.
mejora
mejoramejora
global
dadConfiabili
Fracción )Fracción1(
1 dadConfiabili
![Page 76: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/76.jpg)
Costos
76
Diferentes LÍMITES según la aplicación:
1.Dinero: -máximas prestaciones para presupuesto fijo -buena relación prestaciones / dinero
2.Consumoenergético
-tareas realizadas por carga de energía en una batería 3.Potencia requerida / Calor generado -sobremesa / portátil / PDA / teléfono móvil 4.Espacio físico disponible -sistema empotrado o superordenador
![Page 77: Rendimiento Cpu](https://reader035.vdocuments.net/reader035/viewer/2022082207/55cf8f12550346703b989e8d/html5/thumbnails/77.jpg)
Costo de un microprocesador
77
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 Producción decrece con el tiempo} •Curva de aprendizaje: menos productos desechados en la producción •Volumen de producción: cuanto mayor, menor es el coste por unidad} •Commodities: productos proporcionados por múltiples vendedores, que esencialmente son iguales: mayor competencia →menorcoste y Precio Costes en un PC de sobremesa •Procesador: 20%, Memoria: 5%•Tarjeta Gráfica:5%, Periféricos: 40%, S/W:20%