Transcript Métrica

Métricas de Rendimiento de Sistemas Operativos
Métricas de Rendimiento de Sistemas Operativos
La medición es fundamental para cualquier
disciplina de ingeniería.
Según Loard Kelvin “Cuando pueda medir
lo que está diciendo y expresarlo con
números, ya conoce algo sobre ello; cuando
no pueda medir, cuando no pueda expresar
con números lo que dice, su conocimiento es
precario y deficiente: puede ser el comienzo
del conocimiento, pero en sus pensamientos,
apenas está avanzando hacia el escenario de
la ciencia”.
Métricas de Rendimiento de Sistemas Operativos
Indicadores
Medida : Indicación cuantitativa de la extensión,
cantidad, dimensiones, capacidad o tamaño de algunos
atributos de un proceso o producto.
Métrica: Medida cuantitativa del grado en que un
sistema, componente o proceso posee un atributo dado.
Indicador: Es una métrica o combinación de métricas
que proporcionan una visión profunda del proceso de
SW, del proyecto o producto en sí. Permite al gestor de
proyectos ajustar el producto, proyecto o proceso para
que las cosas salgan mejor.
Métricas de Rendimiento de Sistemas Operativos
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.
Métricas de Rendimiento de Sistemas Operativos
Métricas de software
1. Medidas directas: Ejm: costo, esfuerzo
2. Medidas indirectas: Ejm: LDC, velocidad de ejecución, defectos
durante un período de tiempo.
Métricas orientadas al Tamaño Provienen de la normalización de las
medidas de calidad y/o productividad, considerando el “tamaño” del
SW producido.
Métricas orientadas a la Función Utilizan una medida de
“funcionalidad” de la aplicación como valor de normalización
Puntos de fusión y factores de complejidad

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
6 de 22

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
7 de 22
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
8 de 22
Tiempo _ CPU =
Segundos
=
Pr o gra ma
T
Instrucion es
Pr o gra ma
Instrucció n
CPI
C o m p ila d o r
x
(x )
R e p e rto rio d e
in stru ccio n e s
O rg a n iz a ció n E stru ctu ra
T e cn o lo g ía
x
x
Estructura de
Computadores (EUI: 2º ITIS)
Ciclos
x
Segundos
Ciclo
= N x CPI x T C
R e cu e n to d e
In stru ccio n e s
x
P ro g ra m a
x
T ie m p o d e C iclo
x
Cap 2: Rendimiento de un computador
x
x
9 de 22

MIPS (millones de instrucciones por segundo)
MIPS
MIPS

Frecuencia
Nativos
=
Re lativos
del reloj
CPI x 10 6
=
Tiempo
Tiempo
Re ferencia
x MIPS
Re ferencia
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
10 de 22

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:
Estructura de
Computadores (EUI: 2º ITIS)
O p e ra c io n e s
+ , - , * y co m p a ra r
 , ra íz cu a d ra d a
E xp , se n o
Cap 2: Rendimiento de un computador
Pesos
1
4
8
11 de 22
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


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)



Ejemplos: Compiladores (gcc), tratamiento de textos (TeX), herramientas
CAD (spice).
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
12 de 22

SPEC: Cooperativa de Evaluación del Rendimiento de Sistemas (System
Performance Evaluation Cooperative)

En 1988 representantes de unas cuantas compañías - Apollo/Hewlett-Packard,
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
13 de 22



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
14 de 22

¿Cómo combinar el rendimiento de un conjunto de programas?
Media aritmética
T Medio 
1
n
Media armónica
n
n
 Ti
n
i 1
donde V i 
1
V
i 1

i 1
Peso
ponderada
n
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
1
i
(Si el rendimient o se expresa como una frecuencia
Media armónica ponderada
Media aritmética
T Medio 
n

Ti
Normalizad o
i 1
i
Vi
Normalizad o
T
i
 Tiempo de ejecución, normalizad o para la máquina de referencia , para el programa iésimo de un total de n.
T i  Tiempo de ejecución del programa
Estructura de
Computadores (EUI: 2º ITIS)
iésimo
n  Número de programas de la carga de trabajo
Cap 2: Rendimiento de un computador
15 de 22

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 antes de la mejora
Tiempo de ejecución después de la mejora
Tiempo de ejecución después de la mejora 

Tiempo de ejecución afectado por la mejora
 Tiempo de ejecución no afectado por la mejora
Cantidad 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
16 de 22

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 .1 
Speedup
1000

1
0 .9
100

1
0 .1 
0 .9
 9 . 17
100
10
P

0 .9
 5 .3
Speedup
 9 . 91
Al pasar de 100 a 10000 .1 procesadores
el aumento de
1000
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
17 de 22

Veamos que ocurre si mejoramos en cantidad 2 la parte
1
no paralela:
Speedup

 16 . 95
100 , 2
0 .1

2

0 .9
100
Veamos que ocurre si aumentamos la fracción
paralelizable en 0.05
1
Speedup
100

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
18 de 22
Métricas de Rendimiento de Sistemas Operativos
Pruebas
http://translate.google.com.mx/translate?hl=es&langpair=en%7Ces&u=
http://www.pcmag.com/article2/0,2817,2355703,00.asp
http://blog.itechtalk.com/2010/simple-tips-to-improve-windows-7performance/