Publicado el 13 de Junio del 2019
637 visualizaciones desde el 13 de Junio del 2019
990,8 KB
7 paginas
Creado hace 6a (01/02/2018)
T2
S
I
-
C
E
T2
S
I
-
C
E
1. Rendimiento en los procesadores
2. Medidas de rendimiento
3. Ley de Amdahl
Bibliografía
– Hennessy Patterson Apendice A, 4ª ed.
1
2
T2
S
I
-
C
E
T2
S
I
-
C
E
“Los buenos programadores se han preocupado siempre
por el rendimiento de sus programas porque la rápida
obtención de resultados es crucial para crear
programas de éxito”
D. A. Patterson y J. L. Henessy
3
4
T2
S
I
-
C
E
T2
S
I
-
C
E
Cuántos ciclos tarda en ejecutarse este programa
– Depende del procesador: por ejemplo en el MIPS multiciclo
lw r1, 0(r0) → 5
lw r2, 4(r0) → 5
add r3, r1, r2 → 4
beq r3, r5, 1 → 4
sub r3, r3, r5 → 4
sw r3, 8(r0) → 4
Y cuánto Tiempo
– Depende de la frecuencia del procesador
5
Para poder comparar diferentes procesadores hace falta establecer una medida
del rendimiento que permita cuantificar los resultados de la comparación
‒ Métrica: establece la unidad de medida, que casi siempre es el tiempo, aunque hay que
considerar dos aspectos diferentes del tiempo:
‒ Tiempo de ejecución: tiempo que tarda en realizarse una tarea determinada
‒ Productividad (througput): tareas realizadas por unidad de tiempo
El interés por uno u otro aspecto dependerá del punto de vista de quien realiza la medida:
un usuario querrá minimizar el tiempo de respuesta de su tarea, mientras que el
responsable de un centro de datos le interesará aumentar el número de trabajos que realiza
el centro por unidad de tiempo (productividad)
‒ Patrón de medida: establece los programas que se utilizan para realizar la medida
(benchmarks). Existen muchos posibles benchmarks aunque los más utilizados son:
‒ Nucleos de programas reales: SPEC
‒ Programas sintéticos: TPC
6
T2
S
I
-
C
E
T2
S
I
-
C
E
Formado por :
‒ Tiempo de respuesta: tiempo para completar una tarea (que percibe el usuario).
‒ Tiempo de CPU: tiempo que tarda en ejecutarse un programa, sin contar el tiempo de
E/S o el tiempo utilizado para ejecutar otros programas. Se divide en:
•Tiempo de CPU utilizado por el usuario: tiempo que la CPU utiliza para ejecutar el
programa del usuario sin tener en cuenta el tiempo de espera debido a la E/S
‒
•Tiempo de CPU utilizado por el S.O: tiempo que el S.O. emplea para realizar su
gestión interna.
La función time de Unix visualiza estas componentes: 90.7u 12.9s 2:39 65%, donde:
•
•
•
•
•
•
Tiempo de CPU del usuario = 90.7 segundos
Tiempo de CPU utilizado por el sistema = 12.9 segundos
Tiempo de CPU= 90.7 seg.+ 12.9seg = 103.6
Tiempo de respuesta = 2 minutos 39 segundos =159 segundos
Tiempo de CPU = 65% del tiempo de respuesta = 159 segundos*0.65 = 103.6
Tiempo esperando operaciones de E/S y/o el tiempo ejecutando otras tareas 35%
del tiempo de respuesta = 159 segundos*0.35 = 55.6 segundos
Tiempo de ejecución de un programa
T = N * CPI * Tc
Arquitectura del computador
Compilador
Organización del computador
Tecnología
Arquitectura del computador
Organización del computador
T = tiempo de ejecución del programa
N = número de instrucciones del programa
CPI = número medio de ciclos por instrucción
Tc = tiempo de ciclo
CPI = Ciclos medios por instrucción
– Una instrucción necesita varios ciclos de reloj para su ejecución
– Además, diferentes instrucciones tardan diferentes cantidades de tiempo
– CPI= Es una suma ponderada del número de ciclos que tarda por separado
cada tipo de instrucción
7
8
T2
S
I
-
C
E
T2
S
I
-
C
E
Cálculo del CPI
‒
El número total de ciclos de reloj de la CPU se calcula como:
Número de ciclos de la CPU CPI NI
•
n
i
1
CPI NI
•
i
i
• NIi = número de veces que el grupo de instrucciones i es ejecutado en un
programa
CPIi = número medio de ciclos para el conjunto de instrucciones i
•
‒
Podemos calcular el CPI multiplicando cada CPIi individual por la fracción de ocurrencias
de las instrucciones i en el programa.
CPI
n
i
1
i
CPI NI
•
i
NI
n
i
1
CPI
(
i
•
NI
i
NI
)
‒ CPIi debe ser medido, y no calculado a partir de la tabla del manual de referencia
EL CPI ideal es 1
Hay pérdidas de rendimiento por las paradas del pipe
CPI real = CPI ideal + Penaliz. media por instrucción =
1
#
tipos
de
i
1
instr
Penaliz
i Frec
i
Caso de los saltos. Un programa típico 30% de saltos
– CPI = 1 + ( 1 x 0.3 ) = 1.3
=
= = 3.84
Nº Instrucciones x nº de etapas 5
Nº instrucciones x CPI
1.3
Speedup
– Eficiencia :
Speedup real / Speedup ideal =3.84 / 5 = 0.76
Se pierde un 24 % respecto al caso ideal
9
10
T2
S
I
-
C
E
T2
S
I
-
C
E
MIPS (Millones de Instrucciones Por Segundo)
MIPS
Tiempo
_
de
NI
_
ejecución
10
6
1
CPI
* 10 *
6
Tiempo de ejecución
NI
MIPS
*10
6
Tc CPI
Fc
*10
6
‒ Dependen del repertorio de instrucciones, por lo que resulta un parámetro difícil de
utilizar para comparar máquinas con diferente repertorio de instrucciones
‒ Varían entre programas ejecutados en el mismo computador
‒ Pueden variar inversamente al rendimiento, como ocurre en máquinas con hardware
especial para punto flotante
MIPS
relativos
Tiempo de ejecución en la máquina de referencia
Tiempo de ejecución en la máquina a medir
•
MIPS
refeerencia
MIPSrefeerencia = 1 (MIPS del VAX-11/780)
MFLOPS (Millones de Operaciones en punto FLotante Por Segundo)
MFLOPS
Número de operaciones en coma flo
Tiempo de ejecución
tan
• 10
6
te de un programa
‒
‒
Existen operaciones en coma flotante rápidas (como la suma) o lentas (como la división),
por lo que puede resultar una medida poco significativa.
Se han utilizado los MFLOPS normalizados, que dan distinto peso a las diferentes
operaciones.
‒ Por ejemplo: suma, resta, comparación y multiplicación se les da peso 1; división y raíz
cuadrada peso 4; y exponenciación, trigonométricas, etc. peso 8:
Productividad (throughput)
‒ Número de tareas ejecutadas en la unidad de tiempo
11
12
T2
S
I
-
C
E
T2
S
I
-
C
E
Ganancia de velocidad (speedup): Ley de Amdahl
La mejora obtenida en el rendimiento global de un computador al utilizar un modo de ejecución
más rápido está limitada por la fracción de tiempo que se puede utilizar dicho modo
•Definición de ganancia de velocidad:
gv
global
Tiempo de ejecución sin mejora Tsin
)
Tiempo de ejecución con mejora Tcon
)
(
(
(1 - fm) * Tsin
Tsin
Tcon = (1 - fm) * Tsin + fm * Tsin / gvmejora
gvglobal
tiempo en
que se
puede
utilizar la
mejora
fm * Tsin
fm * Tsin / gvmejora
tiempo
ahorrado
en la
mejora
gv
global
Tsin
Tcon
Tsin
Tsin
(1
f
m
)*
Tsin
1
(1
fm
)
f
*
m
gv
mejora
1/(1-fm)
gvmejora
1
1
f
m
lim gv
_
global
gv
mejora
f
m
gv
mejora
Ejemplo
‒
‒
‒
En un computador se sustituye el disco magnético por otro 10 veces más rápido.
El disco se utiliza sólo el 40% del tiempo de ejecución.
¿Cuál es la ganancia de velocidad global?
fr=0.4
gvmejora = 10
gvglobal
CPU
gvmejora = 10;
fm = 0.4 ==> gvglobal =
1
(1 0.4)
0.4
10
=
1
0.64
= 1.56
lim gvglobal =
gvmejora ‐‐>
1
(1 0.4)
= 1.666 (máxima ganancia para velocidad del disco infinita)
13
14
Comentarios de: Módulo 3: Diseño del procesador. Rendimiento (0)
No hay comentarios