Programación no lineal.
Enviado por nelson29226 . • 19 de Mayo de 2016 • Apuntes • 2.430 Palabras (10 Páginas) • 173 Visitas
- RENDIMIENTO DE UN COMPUTADOR.
- Complejidad de definir claramente el rendimiento de un computador.
- El tiempo como una medida del Rendimiento.
- a menor tiempo mayor rendimiento.
- ¿que tiempo es el que se tiene en cuenta?
- tiempo de ejecución de un programa.
- tiempo de respuesta. Incluye:
- Acceso a discos.
- Acceso a memoria.
- Gasto del Sistema Operativo.
- etc.
- Entorno multiprogramación.
- tiempo de CPU.
- no incluye E/S.
- no incluye tareas del Sistema.
- Rendimiento como tiempo de CPU.
CCPU = NI * CPI.
tCPU = NI * CPI * 1/fr
CCPU = ciclos de reloj de la CPU
NI = nº de instrucciones.
CPI = nº de ciclos por instrucción.
fr = frecuencia de reloj.
- El aumento del rendimiento depende de tres factores.
- fr: Tecnología hardware y organización.
- CPI: organización, arquitectura a nivel de lenguaje máquina.
- NI: arquitectura a nivel de lenguaje máquina y tecnología de compiladores.
- Otra forma de definir los ciclos de CPU.
Ii : nº de veces de la instrucción i.
CPIi: ciclos por instrucción de la instrucción i.
T: periodo señal de reloj
- Ahora el CPI puede obtenerse:
- El cálculo de CPIi debe incluir fallos de caché y demás ineficiencias del sistema de memoria.
- Dilema:
- disminuir el nº de instrucciones: puede conducir a una organización con un T mayor.
- disminuir el CPI: puede conducir a un aumento del NI.
- aumentar fr: problemas de tecnología.
- hay que tener en cuenta la frecuencia de las Instrucciones.
- Ejemplo I:
CPU-A: Una instrucción de comparación
Una instrucción de salto condicional
CPIsalto = 2 ciclos
CPIresto = 1 ciclo
CPU-B: Una comparación que incluye el salto (DBEQ).
CPsalto = 2 ciclos
El ciclo de reloj de la CPU-A es un 25% más rápido que el de la CPU-B.
CPU-A 20% de Salto => 20% de comparación.
CPU-B 20 de 80 de Salto ⇒ 25% de Salto ⇒ 80% de instrucción respecto a CPU-A
La CPU-A es más rápida a pesar de tener la CPU-B menos instrucciones.
- Ejemplo II:
- El mismo caso pero con unas diferencias en las frecuencias de reloj de solo el 10%
- En este caso la máquina B es más rápida.
- Ejemplo III:
- Máquina A de carga/almacenamiento cuya frecuencia y ciclos de las instrucciones se da en la figura:
- Fig. 2.2 pag. 42 Hannesy (blanco)
- Máquina B: el 25% de las operaciones en la ALU utiliza un dato cargado que no se utiliza de nuevo.
- Se añaden instrucciones a la ALU con un operando en memoria de duración 2 ciclos.
- La duración de un salto es de 1 ciclo de reloj más.
- No se afecta la frecuencia del reloj.
Añadir nuevas instrucciones empeora el rendimiento.
- Medidas del rendimiento.
- MIPS: Millones de Instrucciones por segundo.
- Una forma de intentar indicar el rendimiento de un computador.
- su relación con el tiempo de ejecución:
- Ventajas de la métrica de MIPS.
- Fáciles de entender.
- Mayor MIPS mayor rapidez de ejecución.
- Inconvenientes:
- Los MIPS dependen del repertorio de Instrucciones.
- difícil comparar máquinas con diferente conjunto de instrucciones.
- Los MIPS varían entre programas en un mismo computador.
- Los MIPS pueden variar inversamente al rendimiento.
- ejemplo de máquinas con hardware en punto flotante.
- Si dispone baja los MIPS
- Si no dispone suben los MIPS.
- Los MIPS no reflejan el tiempo de computación y pueden fallar al dar una visión del rendimiento del computador.
- Se puede dar como medida los MIPS relativos a una máquina patrón.
tiempo referencia: tiempo del programa en la maquina de referencia
tiempo no estimado: tiempo de ejecución del programa en la máquina a medir
MIPSreferencia: MIPS de la máquina de referencia
- Problema de encontrar una máquina de referencia (VAX-11/780 en los años ochenta)
- A medida que el software se desarrolla (modernos computadores) hay dificultades de acoplarlos a máquinas de referencia.
- Los MIPS relativos no aportan demasiadas ventajas ya que hay que conocer el tiempo de ejecución, el programa y la entrada.
- MFLOPS: Millones de operaciones en punto flotante por segundo.
- Son aplicables a problemas que impliquen cálculo en P.F. (p. ej. para un compilador no sirve).
- No todas las operaciones en P.F. tienen la misma importancia.
- Fig. 2.3 pag. 46 Hennesy
- Ejemplo:
- Programa Spice ejecutándose en ua DESStation 3100 en 94 segundos.
- El nº de instrucciones en P.F. se muestra en la figura.
- Fig. Pag. 47 Hennesy.
- La estimación de MFLOPS para un programa no puede generalizarse para todo programa por lo que no son una medida útil para todos los programas.
- Elección de programas para evaluar el Rendimiento.
- El usuario de un computador que ejecute día tras día un conjunto de programas es el ideal para evaluar.
- Hay diferentes niveles de programas usados para evaluar el rendimiento.
- Programas reales:
- Compiladores C.
- Software de tratamiento de textos.
- Herramientas CAD (Spice).
- Estos tienen entradas, salidas y opciones que actúan mientras se ejecute el programa.
- Núcleos (Kernels).
- Se extrae piezas claves de programas para evaluar el rendimieto.
- “Livermore Loops” y “Linpack”.
- Estos núcleos sólo se utilizan para evaluar rendimiento.
- Bechmarks reducidos.
- Programas reducidos, entre 10 y 100 líneas, con resultados conocidos antes de ejecutar.
- Criba de Eratóstenes.
- Puzzle.
- Clasificación rápida (Quick sort).
- Benchmarks Sintéticos.
- no son parte de programas reales y no los ejecutan los usuarios porque no dan nada.
- intentar determinar la frecuencia media de operaciones y operandos de un gran conjunto de programas.
- Whetstone.
- Dhrystone.
- Peligro de dirigir la optimización de los computadores a dar buenos valores de Benchmarks sintéticos.
- La utilización de “Benchmarks” y “Núcleos” puede ser atractiva cuando se empieza con un diseño.
- son pequeños y fácilmente simulables.
- se pueden hacer a mano.
- pueden ejecutarse aunque no exista todavía compilador.
- son fáciles de standarizar.
- No puede extenderse para evaluar el rendimiento de sistemas computadores en funcionamiento.
- Standarización de Sistemas Operativos: UNIX, DOS.
- Existencia de software de distribución libre.
- Poder ejecutar todo programa real en cualquier máquina.
- Información sobre los resultados del rendimiento.
- Reproductibilidad:
- Todos los datos necesarios para que todo usuario pueda repetir las medidas.
- Decir que el programa Spice emplea en ejecutarse 94 seg. en una DECStation 3100 no es suficiente:
- ¿Hay entradas?
- ¿Qué compilador se ha usado?
- ¿Cuanta memoria principal?
- ¿Cuantos discos y tipo usados?
- Comparación y resumen de rendimientos:
- Cuando se ejecutan programas se puede llegar a cierta confusión en comparación de un solo programa.
- cuadro de la fig. 2.6 pag. 53
- El tiempo total de ejecución:
- es la aproximación más sencilla:
- otra posible medida es la media aritmética:
- Tiempo de ejecución ponderado:
- ¿cuál es la mezcla adecuada de programa para la carga de trabajo?
Pi es la frecuencia del programa i-esimo de la carga de trabajo.
...