Lectures for 2nd Edition
Download
Report
Transcript Lectures for 2nd Edition
Escuela de Ingeniería Electrónica
Rendimiento
Capítulo 4
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 1
Rendimiento
Escuela de Ingeniería Electrónica
Rendimiento
Rendimiento
• Relación entre el producto o el resultado
obtenido y los medios utilizados.
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 2
(Tomado del diccionario de la Real Academia Española)
Escuela de Ingeniería Electrónica
Concepto de Rendimiento
• En un contexto empresarial, el concepto de
rendimiento hace referencia al
– resultado deseado efectivamente obtenido por cada unidad
que realiza la actividad, donde el término unidad puede
referirse a un individuo, un equipo, un departamento o una
sección de una organización.
Rendimiento
• En agricultura y economía agraria,
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 3
– rendimiento de la tierra o rendimiento agrícola es la
producción dividida entre la superficie.
– La unidad de medida más utilizada es la tonelada por
hectárea (Tm/Ha).
– Un mayor rendimiento indica una mejor calidad de la tierra
(por suelo, clima u otra característica física) o una
explotación más intensa, en trabajo o en técnicas agrícolas
(abonos, regadío, productos fito sanitarios, semillas
seleccionadas – transgénicos - etc.).
Escuela de Ingeniería Electrónica
Concepto de rendimiento
• En física y en el campo tecnológico,
Rendimiento
– El rendimiento o la eficiencia de un dispositivo, máquina, ciclo
termodinámico, etc. Expresa el cociente entre:
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 4
– La energía obtenida (energía útil) de su funcionamiento y la energía
suministrada o consumida por la máquina o el proceso.
– El trabajo obtenido (trabajo útil) de su funcionamiento y el trabajo
suministrado o consumido por la máquina o el proceso.
Escuela de Ingeniería Electrónica
Rendimiento
Rendimiento (Performance)
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 5
• Mide, reporta y resume
• Tomar decisiones inteligentes
• Es un concepto para comprender la motivación
organizacional
• ¿Porqué un hardware es mejor que otros para
diferentes programas?
• ¿Cuáles son los factores de hardware más
importantes en el rendimiento del sistema?
– Con su respuesta podríamos decir, necesitamos una máquina
nueva o un nuevo sistema operativo
• ¿Cómo el conjunto de instrucciones afecta el
rendimiento de la máquina?
?
Escuela de Ingeniería Electrónica
¿Cuál de estos aviones tiene mejor rendimiento?
Rendimiento
Avión
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 6
Pasajeros
Boeing 777
Boeing 747
BAC/Sud Concorde
Douglas DC-8-50
375
470
132
146
Rango (mi)
Velocidad (mph)
4630
4150
4000
8720
610
610
1350
544
• ¿Qué tan rápido es el Concorde comparado con el 747?
• ¿Qué tan grande es un 747 con un Douglas DC-8-50?
• ¿Cuál sería el que tiene mayor rendimiento?
Escuela de Ingeniería Electrónica
Definición de rendimiento
Boeing 777
Boeing 777
Boeing 747
Boeing 747
BAC/Sud
Concorde
BAC/Sud
Concorde
Douglas
DC-8-50
Douglas DC8-50
Rendimiento
0
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 7
100
200
300
400
0
500
Boeing 777
Boeing 777
Boeing 747
Boeing 747
BAC/Sud
Concorde
BAC/Sud
Concorde
Douglas
DC-8-50
Douglas DC8-50
500
1000
Cruising Speed (mph)
4000
6000
8000 10000
Cruising Range (miles)
Passenger Capacity
0
2000
1500
0
100000 200000 300000 400000
Passengers x mph
Escuela de Ingeniería Electrónica
Variables involucradas en el rendimiento de un
computador
Rendimiento
• Tiempo de respuesta
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 8
– Tiempo que transcurre entre el inicio y la
conclusión de una tarea, también conocido como
tiempo de ejecución.
• Throughtput o ancho de banda
– Cantidad total de trabajo realizado en un tiempo
dado.
Escuela de Ingeniería Electrónica
Rendimiento de un computador: tiempo, tiempo, tiempo
• Tiempo de respuesta (latency)
Es el tiempo que tarda una tarea en realizarse desde su inicio hasta el final.
También se conoce como tiempo de ejecución.
Rendimiento
— ¿Cuánto tiempo tarda mi trabajo en correr?
— ¿Cuánto tiempo se tarda en ejecutar mi trabajo?
— ¿Cuánto tiempo debo esperar en la cola de la base de datos?
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 9
• Throughput
Es la cantidad de trabajo realizado en un tiempo dado.
— ¿Cuántos trabajos puede la máquina correr al mismo tiempo?
— ¿Cuál es la razón de ejecución promedio?
— ¿Qué tanto trabajo se ha realizado?
• CONCLUSIÓN
Si disminuimos el tiempo de respuesta mejoramos la cantidad de trabajo por unidad de tiempo
Escuela de Ingeniería Electrónica
Ejercicio
•
CASO 1 Si actualizamos la máquina con un nuevo procesador, ¿qué es
lo que incrementamos?
–
Rendimiento
•
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 10
Mejoramos el tiempo de respuesta por lo tanto mejoramos la cantidad
de trabajo
CASO 2 Si agregamos una nueva máquina a el laboratorio, ¿Qué es lo
que incrementamos?
–
–
No se mejora el tiempo de respuesta solo se mejorar la cantidad de
trabajo.
¿Qué sucede si la demanda de trabajo aumenta?
•
•
El trabajo de apila
CONCLUSION
–
En los computadores reales, si se cambia el tiempo de ejecución o el
throughput se afectan entre ellos. Son variables que se relacionan
entre ellas.
Escuela de Ingeniería Electrónica
Rendimiento
Rendimiento de un computador
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 11
• El tiempo es la medida del rendimiento del
computador.
• El computador que realiza la misma tarea en
un tiempo menor es el más rápido.
Escuela de Ingeniería Electrónica
Tiempo de ejecución
• Tiempo de ejecución de un programa se mide en
segundos por programa
• Elapsed Time, tiempo de respuesta
Rendimiento
– Es el tiempo que se tarda en realizar la tarea
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 12
• Cuenta todo (accesos a memoria y disco, I/O , etc.)
• Un dato de mucha ayuda, pero no siempre se puede utilizar
para comparar. En el caso de multitarea.
• Tiempo de CPU
• Es el tiempo que tarda el CPU en realizar una tarea
• No se cuenta con I/O o el tiempo en la ejecución de otros
programas.
• Se puede dividir en:
– Tiempo que el CPU invierte en el programa (tiempo de usuario de
CPU)
– Tiempo de CPU que invierte en el rendimiento de las tareas del
sistema operativo (tiempo del sistema de CPU)
Escuela de Ingeniería Electrónica
Propósito
Rendimiento
• Nuestro propósito: Tiempo de CPU del
usuario
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 13
– Tiempo invertido en la ejecución de las líneas de
código que contiene mi programa
Escuela de Ingeniería Electrónica
Ejemplo
Rendimiento
• Algunos sistemas operativos suministran
información referente al tiempo de CPU.
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 14
Escuela de Ingeniería Electrónica
Rendimiento
Ejemplo
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 15
Escuela de Ingeniería Electrónica
Ejemplo
• El comando time –p (pipeline) en Linux ofrece la
siguiente información
Rendimiento
• Usuario
• Syst
• Real
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 16
0.000 seg
0.010 seg
0.11 seg
• El tiempo de respuesta es:
0.000 + 0.010 = 0.010 seg
• El porcentaje del tiempo de respuesta es:
– 0.01/0.11 = 0.0909 o sea un 9.0%
• CONCLUSION:
– Un 91% aproximadamente estuvo esperando por I/O,
corriendo otros programas o ambos
Escuela de Ingeniería Electrónica
Definición de Rendimiento
• Para algunos programas que corren en la
máquina X,
Rendimiento
RendimientoX = 1 / Tiempo de ejecuciónX
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 17
• "X es “n” veces más rápida que Y"
RendimientoX / RendimientoY = n
Escuela de Ingeniería Electrónica
EJEMPLO
• Problema:
Rendimiento
– Máquina A corre un programa en 10 segundos.
– Máquina B corre el mismo programa en 15
segundos.
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 18
• ¿Qué tan rápida es A con respecto a B?
Escuela de Ingeniería Electrónica
SOLUCIÓN
• PARA LA MAQUINA A
• Rendimiento de A
Re nA
1
1
0.1
tie mpo de e je cución 10
Rendimiento
• PARA LA MAQUINA B
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 19
Re nB
1
1
0.0666
tie mpo de e je cución 15
• La relación de rendimiento será:
1
re n di m ie n to de A tie m po de e je cu ción de A tie m po de e je cu ción de B 15
n
1.5
1
re n di m ie n to de B
tie m po de e je cu ción de A 10
tie m po de e je cu ción de B
• O sea la máquina A es 1.5 veces más rápida que la
máquina B.
Escuela de Ingeniería Electrónica
Hacer distinción entre
Rendimiento
• El rendimiento basado en el tiempo de
respuesta (rendimiento del sistema)
• El rendimiento basado en el tiempo de
ejecución del CPU (rendimiento del CPU)
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 20
Escuela de Ingeniería Electrónica
Rendimiento
Reloj
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 21
• Los eventos en el procesador ocurren bajo la
sincronización del reloj.
• Los intervalos de tiempo en que ocurren los
eventos se llaman ciclos de reloj (pulsos,
pulsos de reloj, reloj, ciclos)
• Con el término períodos de reloj nos
referimos a:
– El tiempo para un ciclo completo. Por ejemplo 20
segundos
– La razón de reloj. Por ejemplo 500 MHz, el cual es
el inverso del período de reloj
Escuela de Ingeniería Electrónica
Ciclos de reloj
• En lugar de utilizar segundos para los tiempos de ejecución,
utilizamos ciclos.
Rendimiento
segundos ciclos segundos
programa programa
ciclo
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 22
• Los pulsos de reloj indican cuando se deben realizar las
actividades:
•
time
Tiempo de ciclo = tiempo entre pulsos = segundos por ciclo
• Razón de reloj (frecuencia) = ciclos por segundo (1 Hz. = 1
ciclo/segundo)
• Un reloj de 200 Mhz. Tiene un tiempo de ciclo de:
1
109 5 nano segundos
200 106
Escuela de Ingeniería Electrónica
Mediciones
• Recuerde para medir el rendimiento es necesario conocer el
tiempo de ejecución del CPU
• Los siguientes modelos relacionan el CPU con los pulsos de reloj
Rendimiento
de ejecución
• tiempo
O sea
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 23
de un programa ciclos de reloj del CPU para correr el programa * el tiempo de ciclo de reloj
tie mpo de e je cución de un programa
ciclos de re loj de l C PU para e l programa
raz ón de re loj
• CONCLUSIÓN:
– Los ingenieros en diseño de hardware pueden mejorar el
rendimiento reduciendo el tiempo de ciclo de reloj o el número de
ciclos de reloj requeridos por el programa. Las técnicas para
decrementar el número de ciclos de reloj incrementan el tiempo de
ciclo del reloj.
Escuela de Ingeniería Electrónica
Rendimiento
Ejemplo
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 24
• Nuestro programa favorito corre en 10 segundos en el
computador A, el cual tiene un reloj de 400 MHz.
Estamos tratando de ayudar a un diseñador de
computadoras a desarrollar una máquina B, que
corra el programa en 6 segundos. El diseñador puede
utilizar una nueva tecnología para incrementar la
razón de reloj, pero nos informó que esto podría
afectar el resto del diseño del CPU, haciendo que la
máquina B requiera de 1.2 veces más que los ciclos de
reloj de la máquina A para el mismo programa. ¿Qué
relación de reloj debemos decirle al diseñador que
utilice?
Escuela de Ingeniería Electrónica
SOLUCIÓN
CPU
CICLO S
T
e je cución RAZO N DE RELO J
• PARA EL PROGRAMA A
Rendimiento
10 Se g
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 25
CPU
CICLO S CPU
10 se g * 400 *10 6 4000 *10 6
CICLO S
400 MHz
• PARA EL PROGRAMA B
– Como la máquina B requiere 1.2 veces ciclos de reloj más que la
máquina A entonces:
6 Se g
1.2 (4000 *10 6 )
1.2 (4000 *10 6 )
XMHz
800 MHz
X MHz
6 se g
• CONCLUSIÓN
– La máquina B debe correr al doble de la razón de reloj de la
máquina A
Escuela de Ingeniería Electrónica
¿Cómo se mejora el rendimiento?
segundos ciclos segundos
programa programa
ciclos
Rendimiento
• Entonces para mejorar el rendimiento
(conservando el resto igual) se podría :
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 26
_______ El número de ciclos requeridos por el programa, o
_______ El tiempo de ciclo del reloj
_______ La razón del reloj.
Escuela de Ingeniería Electrónica
¿Cuántos ciclos requiere el programa?
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 27
...
VI Instrucción
V Instrucción
IV Instrucción
III Instrucción
II Instrucción
I Instrucción
Rendimiento
• Si asumimos que:
# de ciclos = # de instrucciones
tiempo
Este supuesto es incorrecto.
Las instrucciones tienen tiempos diferentes en diferentes máquinas.
PORQUE:
Recuerde estas son líneas de instrucciones
Escuela de Ingeniería Electrónica
Diferentes número de ciclos para diferentes
instrucciones
Rendimiento
tiempo
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 28
•
La multiplicación toma más tiempo que la suma.
•
Las operaciones en punto flotante toman más tiempo que las enteras.
•
El acceso a memoria que el acceso a registros
•
ASPECTO IMPORTANTE:
•
Cambiar el tiempo de ciclo algunas veces cambia el número de ciclos requeridos para
varias instrucciones.
Escuela de Ingeniería Electrónica
Ahora que entendemos los ciclos
•
Un programa dado requiere
– Un número de instrucciones (instrucciones máquina)
– Algún número de ciclos
– Algún número de segundos
Rendimiento
•
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 29
Tenemos un vocabulario que nos relaciona estas cantidades:
– Tiempo de ciclo (segundos por ciclo)
– Relación de reloj (ciclos por segundo)
– CPI (ciclos por instrucción)
• Es el número de promedio de ciclos de reloj que cada instrucción tarda en
ejecutarse
• Las aplicaciones intensivas en punto flotante podrían tener un alto CPI
– MIPS (Millions of Instructions Per Second)
para un programa esto podría ser alto si se utilizan instrucciones simples
Escuela de Ingeniería Electrónica
Rendimiento
Rendimiento
• El rendimiento se determina utilizando el tiempo de
ejecución
• ¿Cualquiera de las otras variables igual rendimiento?
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 30
–
–
–
–
–
# de ciclos para ejecutar el programa?
# de instrucciones en el programa?
# de ciclos por segundo?
# promedio de ciclos por instrucción?
# promedio de instrucciones por segundo?
• Error: pensar que una variable es significativa en el
rendimiento cuando en realidad no lo es.
Escuela de Ingeniería Electrónica
CPI Ejemplo
•
Suponga que tenemos dos implementaciones de la misma arquitectura del
conjunto de instrucciones (ISA).
Para un programa,
Máquina A tiene un tiempo de ciclo de reloj de 1 ns. y un CPI de 2.0
Rendimiento
Máquina B tiene un tiempo de ciclo de reloj de 2 ns. y un CPI de 1.2
¿Cuál máquina es más rápida ejecutando ese programa, y que tan rápida?
•
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 31
Si las dos máquina tienen el mismo ISA, ¿Cuál de las variables (relación de reloj,
CIP, tiempo de ejecución, # de instrucciones, MIPS) podrían ser siempre identicas?
Escuela de Ingeniería Electrónica
Rendimiento
SOLUCION
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 32
•
•
•
•
MAQUINA A
CPI=2.0
CLOCKSCPU=2.0*I
CPUTIME=2.0*I*1
CPUTIME=2.0*I
MAQUINA B
•CPI=1.2
•CLOCKSCPU=1.2*I
•CPUTIME=1.2*I*2
•CPUTIME=2.4*I
rendimient o CPU
A tiempo ejecución B 2.4 * I 1.2
rendimient o CPU
tiempo de ejecución A 2.0 * I
B
CONCLUSION:
La máquina A es 1.2 veces más rápida que la B
Escuela de Ingeniería Electrónica
Rendimiento
# de instrucciones (Ejemplo)
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 33
• Un diseñador de un compilador trata de decidir entre dos
secuencias de código para una máquina en particular. Basados
en la la implementación del hardware, hay tres diferentes tipos
de instrucciones: Clase A, Clase B, Clase C y requieren de un,
dos y tres ciclos respectivamente.
• La primera secuencia de código tiene 5 instrucciones: 2 de la
Clase A, 1 de la B y 2 de la C.
• La segunda secuencia tiene 6 instrucciones: 4 de la Clase A, 1 de
la B y 1 de la C.
• ¿Cuál secuencia es más rápida? ¿Qué tan rápida?
• ¿Cuál es el CPI para cada una de las secuencias?
Escuela de Ingeniería Electrónica
SOLUCIÓN
SECUENCIA 1
Rendimiento
CPUciclos reloj =2*1+1*2+2*3=10 ciclos
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 34
CPI
CPU ciclosrelo j
# instruccio nes
CPI
10 ciclos
2
5 instruccio nes
SECUENCIA 2
CPUciclos reloj =4*1+1*2+1*3=9 ciclos
CPI
CPI
CPU ciclosrelo j
# instruccio nes
9 ciclos
1.5
6 instruccio nes
CONCLUSION
Este ejemplo muestra un peligro si solo se utiliza un factor (número de
instrucciones) para el cálculo del rendimiento. Cuando se comparan dos máquinas,
debe tomarse en cuenta los tres componentes, los cuales se combinan para calcular
el tiempo de ejecución. Si alguno de los factores son idénticos, como la razón de
reloj (como en el ejemplo anterior), el rendimiento puede determinarse comparando
los factores no idénticos. Como el CPI varía por la mezcla de instrucciones el
número de instrucciones y el CPI deben compararse, aunque las razones de reloj
sean idénticas.
Escuela de Ingeniería Electrónica
ECUACION BASICA DEL
RENDIMIENTO
Rendimiento
Tiempo
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 35
CPU
# Instruccio nes * CPI * Tiempo de ciclo del reloj
tiempo
CPU
# de Instruccio nes * CPI
razón de reloj
Escuela de Ingeniería Electrónica
COMPONENTES
Rendimiento
COMPONENTES DEL
RENDIMIENTO
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 36
UNIDADES
Tiempo de CPU en ejecución
de un programa
Segundos por programa
Número de instrucciones
Instrucciones ejecutadas por el
programa
CPI (Ciclos de reloj por
Instrucción)
Valor promedio de los ciclos de
reloj por instrucción
Tiempo de ciclo del reloj
Segundos por ciclo de reloj
Escuela de Ingeniería Electrónica
RESUMEN
Rendimiento
tiempo
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 37
instruccio nes ciclos de reloj
segundos
*
*
programas
instruccio nes ciclos de reloj
• La única medida en el rendimiento es el
tiempo.
• Si se reduce el conjunto de instrucciones nos
conduciría a una arquitectura con un tiempo
de ciclo menor que nos mejorará la cantidad
de instrucciones
Escuela de Ingeniería Electrónica
Rendimiento
¿Cómo se pueden determinar los valores de estos
factores en la ecuación general del rendimiento?
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 38
• Se puede medir el tiempo de ejecución de CPU de un
programa.
• El tiempo de ciclo del reloj, el cual aparece en las hojas
de datos de la máquina
• El número de instrucciones y CPI pueden ser un poco
difíciles de obtener.
• Se puede utilizar un programa para medir la cantidad
de instrucciones
• Recuerde que la cantidad de instrucciones depende de
la arquitectura de la máquina.
Escuela de Ingeniería Electrónica
Cálculo de los ciclos de reloj
• Los ciclos de reloj del CPU se pueden calcular como:
Rendimiento
CPU ci cl os de re l oj
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 39
(CPI * C )
n
i
i
i 1
•
Donde :
Ci = es el número de instrucciones ejecutadas de la clase i
CPIi = número promedio de ciclos por el tipo de instrucción
n = cantidad de tipos de instrucciones
•
•
RECUERDE
El CPI de un programa depende del número de ciclos de cada tipo de
instrucción y de la frecuencia de cada tipo de instrucción en el
programa que se ejecuta.
Escuela de Ingeniería Electrónica
Benchmarks
• El rendimiento es mejor determinarlo corriendo una aplicación
real.
– Utilice programas típicos para sobre carga esperada.
– Una clase de aplicaciones esperada como: compiladores/editores,
aplicaciones científicas, gráficos, etc.
Rendimiento
• Pequeños rendimientos
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 40
– Para arquitectos e ingenieros
– Fácil de estandarizar
– Puede ser un abuso
• SPEC (System Performance Evaluation Cooperative)
– Las compañías tienen gran credibilidad en un conjunto de
programas reales y de entradas.
– Puede seguir siendo un abuso (otra pulga de Intel)
– Es un indicador de rendimiento y tecnología de compiladores.
Escuela de Ingeniería Electrónica
Rendimiento
¿Qué es SPEC?
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 41
• SPEC es el acrónico de “Standard Performance
Evaluation Corporation”
• Una organización sin fines de lucro compuesta por
fabricantes de computadores, integradores de
sistemas, universidades, centros de investigación,
editoriales y consultores con el objetivo de establecer,
mantener y estandarizar un conjunto de pruebas
para los computadores.
• Ningún conjunto de pruebas puede caracterizar el
rendimiento completo del sistema.
• SPEC cree que la comunidad de usuarios se puede
ver beneficiada de una serie objetiva de pruebas que
pueden servir como punto de referencia.
Escuela de Ingeniería Electrónica
¿Qué mide SPEC CPU2000?
•
SPEC CPU2000 se concentra en medir el rendimiento intensivo de los
computadores, las pruebas se especializan en el rendimiento de:
– El procesador del computador (CPU),
– La arquitectura de la memoria
– El compilador
Rendimiento
•
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 42
•
Es importante recordar que la contribución de los dos últimos
componentes, pues el rendimiento es más que solo el microprocesador.
SPEC CPU2000 esta compuesto por dos componentes que se
especializan en dos tipos diferentes para el cálculo intensivo del
rendimiento del computador:
– CINT2000 para medir y comparar el rendimiento entero e intensivo del
computador.
– CFP2000 para medir y comparar el rendimiento intensivo en punto flotante
del computador.
Escuela de Ingeniería Electrónica
SPEC ‘95
Rendimiento
Benchmark
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 43
go
m88ksim
gcc
compress
li
ijpeg
perl
vortex
tomcatv
swim
su2cor
hydro2d
mgrid
applu
trub3d
apsi
fpppp
wave5
Description
Artificial intelligence; plays the game of Go
Motorola 88k chip simulator; runs test program
The Gnu C compiler generating SPARC code
Compresses and decompresses file in memory
Lisp interpreter
Graphic compression and decompression
Manipulates strings and prime numbers in the special-purpose programming language Perl
A database program
A mesh generation program
Shallow water model with 513 x 513 grid
quantum physics; Monte Carlo simulation
Astrophysics; Hydrodynamic Naiver Stokes equations
Multigrid solver in 3-D potential field
Parabolic/elliptic partial differential equations
Simulates isotropic, homogeneous turbulence in a cube
Solves problems regarding temperature, wind velocity, and distribution of pollutant
Quantum chemistry
Plasma physics; electromagnetic particle simulation
Escuela de Ingeniería Electrónica
Pruebas
Rendimiento
• Para procesadores
• Ejemplo
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 44
Escuela de Ingeniería Electrónica
Ley de Amdahl
tiempo ejecución antes mejora
tiempo ejec sin afectar tiempo ejecución afectado
cantidad de mejoras
Rendimiento
• EJEMPLO:
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 45
– Suponga que un programa corre en 100 segundos
en una máquina con responsabilidades de
multiplicación durante 80 segundos de ese tiempo.
– ¿Cuánto debemos de mejorar la velocidad de
multiplicación si queremos que el programa corra
cuatro veces más rápido?
Escuela de Ingeniería Electrónica
Ejemplo
Rendimiento
• Suponga que reforzamos la máquina implementando
instrucciones de punto flotante que hacen la máquina cinco
veces más rápida. Si el tiempo de ejecución de algunas pruebas
antes de la implementación del punto flotante es de 10 segundos,
¿Cuál sería la velocidad final si la mitad de eso 10 segundos se
invierten en la ejecución de instrucciones de punto flotante?.
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 46
• Andamos en la búsqueda de una prueba que muestre la unidad
de punto flotante de la sección anterior, y se quieren realizar
pruebas para mostrar su velocidad de 3. una prueba que se esta
considerando corre por 100 segundos con el hardware de la
máquina vieja. ¿Cuánto del tiempo de ejecución deben de
consumir las instrucciones de punto flotante, en este programa
para cumplir con las especificaciones?
Escuela de Ingeniería Electrónica
MIPS
•
•
•
•
Rendimiento
•
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 47
•
•
•
•
Es el acrónico para million instructions per second.
Es un viejo método para medir la velocidad y la potencia de un computador.
MIPS mide el número de instrucciones máquina que un computador puede
ejecutar en un segundo.
No hay un método estándar para medir los MIPS ya que hay instrucciones que
requieren más o menos tiempo que otras para ser ejecutadas.
Adicionalmente, MIPS se refiere solo a la velocidad del procesador, mientras que
las aplicaciones reales son limitadas por otros factores como la velocidad de los
periféricos de entrada salida.
Una máquina con un alto MIPS, no necesariamente corre una aplicación
particular más rápido que una máquina con un bajo MIPS.
Por estas razones las mediciones MIPS se dejaron de utilizar.
Olvidándose de estos problemas las mediciones MIPS nos dan una idea general
de la velocidad del computador.
El computador IBM PC/XT (basado en el procesador (8088/86), presenta un
MIPS de ¼, mientras que un PC basado en Pentium corre a más de 100 MIPS.
Escuela de Ingeniería Electrónica
MIPS COMO METODO DE MEDICION
Rendimiento
número de instruccio nes
MIPS
tiempo de ejecución * 10 6
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 48
• Es una relación ejecución de instrucciones.
• Especifica el rendimiento en forma inversa al tiempo de
ejecución.
• Las máquinas rápidas tienen un alto MIPS.
• Los problemas son:
– No toma en cuenta las capacidades de las instrucciones. (No se
pueden comparar máquinas con diferente conjunto de
instrucciones)
– El valor del MIPS varía entre programas en el mismo computador.
(No hay una calificación para todos los programas)
– MIPS puede variar inversamente con el rendimiento.
Escuela de Ingeniería Electrónica
Rendimiento
Ejemplo
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 49
• Dos compiladores diferentes se están probando en una máquina
de 100 MHz. Con tres tipos diferentes de instrucciones: Clase A,
Clase B y Clase C, las cuales requieren de uno, dos y tres ciclos
respectivamente. Ambos compiladores son utilizados para
generar código para una gran pieza de software.
• El código del primer compilador utiliza 5 millones de
instrucciones clase A, 1 millón de la clase B, y un millón de la
clase C.
• El código del segundo compilador utiliza 10 millones de
instrucciones de la clase A, 1 millón de la clase B y 1 millón de la
clase C.
• ¿Cuál secuencia es más rápida de acuerdo a MIPS?
• ¿Cuál secuencia podría ser más rápida de acuerdo al tiempo de
ejecución?
Escuela de Ingeniería Electrónica
COMPILADOR 1
• Utilizando el modelo de ciclos de reloj del CPU
CPU CICLOS DE RELOJ= (5*1+1*2+1*3)*109=10*109
Rendimiento
• El tiempo de ejecución para el compilador es:
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 50
Tiempo
e je cución
10 * 10 9
20 segundos
6
500 * 10
• Aplicando el modelo MIPS:
(5 1 1) * 10 9
MIPS
350
6
20 * 10
Escuela de Ingeniería Electrónica
COMPILADOR 2
• Utilizando el modelo de ciclos de reloj del CPU
CPU CICLOS DE RELOJ= (10*1+1*2+1*3)*109=15*109
Rendimiento
• El tiempo de ejecución para el compilador es:
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 51
Tiempo
e je cución
15 * 10 9
30 segundos
6
500 * 10
• Aplicando el modelo MIPS:
(10 1 1) * 10 9
MIPS
400
6
30 * 10
Escuela de Ingeniería Electrónica
Rendimiento
CONCLUSION
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 52
• El código del compilador 2 tiene un MIPS
mayor.
• El código del compilador 1 corre más rápido.
• Este es un ejemplo donde el método MIPS nos
da una visión equivocada de la máquina,
aunque se comparen dos versiones del mismo
programa en la misma máquina.
Escuela de Ingeniería Electrónica
Recuerde
•
El rendimiento es específico para programas particulares
– El tiempo total de ejecución es un resumen consistente del rendimiento.
•
Para una arquitectura dada el incremento en el rendimiento está dado
Rendimiento
por:
EL - 3310
Sistemas
Digitales
Ing. José Alberto Díaz
García
Página 53
– Incrementos en la razón de reloj (sin efectos colaterales en el CPI)
– Mejoras en la organización del procesador para lograr un CPI bajo.
– El compilador mejora bajos CPI y o cuenta de instrucciones.
•
Error: tener la expectativa en las mejoras de un aspecto del
rendimiento de la máquina creyendo que afecta el rendimiento total