Post on 12-Jan-2015
Ing. José Díaz Chow
ARQUITECTURA DE MÁQUINAS COMPUTADORAS III
Introducción
Introducción a la Asignatura
PresentaciónContacto
Schedule
Diagnóstico
Syllabus
José Leónidas Díaz Chow Ingeniero en computación
Profesor asistente Facultad de Electrotecnia y Computación. Director del Banco de Proyectos del Sistema Nacional de
Inversión Pública (SNIP) Miembro profesional ACM:
http://member.acm.org/~xdc2k E-mail: jdiazchow@acm.org
Contacto: http://www.snip.gob.ni/xdc/amc3 E-mail: jdiaz@snip.gob.ni
Docente
Introducción a la Asignatura
Horarios
(5T1-Co)
Hora Lunes Martes Miércoles Jueves Viernes
4:10-5:50 IAAplicaciones
GraficasAplicaciones
GraficasAplicaciones
GraficasIA
6:00-7:30 IS II Redes Redes IS II AMC III
7:30-9:00 Redes AMC III IS II AMC III
Introducción a la Asignatura
Horarios
(5T2-Co)
Hora Lunes Martes Miércoles Jueves Viernes
4:10-5:50 IATendencias Tecnológica
s
Tendencias Tecnológica
s IA Redes
6:00-7:30 Redes Redes IS II AMC III
7:30-9:00 IS II AMC III IS II AMC III
Introducción a la Asignatura
Diagnóstico
¿Qué creen que estudiaremos en esta asignatura?
Introducción a la Asignatura
Diagnóstico
¿Qué creen ustedes que estudiaremos en esta asignatura? Lluvia de Ideas:
Objetivos Contenidos Relación con AMC1 y AMC2
Mapa Conceptual
Introducción a la Asignatura
Syllabus
[Objetivo general]
Obtener conocimientos de las técnicas de evaluación del desempeño del sistema de cómputo y las tecnologías de diseño que se han desarrollado para mejorar las prestaciones de las computadoras modernas.
Introducción a la Asignatura
Syllabus
[Objetivos Específicos]
AMC3
Evaluación de
Desempeño
Mejora del Rendimient
o
Procesadores
Segmentados
Arquitecturas SIMD
Arquitecturas MIMD
Tendencias actuales
Introducción a la Asignatura
Syllabus[Contenidos]
Unidad TEMA C CP LAB SEM TotalI Paralelismo y mejora
del rendimiento16 4 4 24
II Segmentación 16 6 12 2 36
III Computación SIMD. 8 2 6 2 18
IV Computación MIMD 8 2 6 2 18
TOTALES
48 14
28 6 96
Introducción a la Asignatura
Syllabus[Evaluación]
Sistemáticos (20%)
1er Examen Parcial (30%)
2do Examen Parcial (30%)
Laboratorios (20%)
Introducción a la Asignatura
Syllabus[Recursos]
Todos disponibles en el portal web de la asignatura: Documentación
Libros Folleto de la asignatura Artículos
Presentaciones Guías de Clases prácticas Guías y herramientas de laboratorios
Bibliografía
Arquitectura de Computadoras y procesamiento paralelo. Kai Hwang Fayé A. Briggs
Cubre todo el contenido de la asignatura.
Abundantes ejemplos de implementación de arquitecturas reales.
Bibliografía
Arquitectura de Computadoras – Un enfoque cuantitativo. John Hennessy David Patterson
Especialmente útil en unidades 1 y 2, aunque cubre todo el contenido de la clase.
Enfoque evaluativo de la arquitectura.
Bibliografía
Modern Computer Architecture. Rafiquzzaman & Chandra Enfoque sintético de muchos
temas.
Arquitectura de Computadoras. Morris Mano Enfoque más bien organizacional,
excelente abordaje de los multiprocesadores.
Bibliografía
Organización y arquitectura de Computadores. William Stallings Enfoque general. Ejemplos de
arquitecturas modernas.
Organización de Computadoras. Hamacher/ Vranesic/ Zaky Fundamentos anteriores.
Ing. José Leónidas Díaz Chow
Unidad 1: PARALELISMO Y MEJORA DEL RENDIMIENTO
1. Evaluación del Desempeño
¿De qué?
¿Cómo?
Evaluación Evaluación de la Computadora
Las computadoras son cada vez más poderosas
¿Verdad o falsedad? ¿Cómo puedo
saberlo? EVALUAR (Dar
valor, valorar) Medible
¿Como ingeniero, dispongo de la técnica apropiada?
¿Qué quiero yo de una Computadora?
Ofertas de PC : ¿ Qué características presentan? ¿Cuál o cuáles me interesan más a mí? ¿Por qué?
Algunas características de Aviones
Aeroplano Capacidad[Pasajeros]
Alcance[Millas]
Velocidad[M.p.h.]
Productividad[Pasajeros X Mph]
Boeing 737 - 100 101 630 598 60,398
Boeing 747 470 4,150 610 286,700
BAC/Sub Concord 132 4,000 1,350 178,200
Douglas DC-8-50 146 8,720 544 79,424
Evaluación del Desempeño ¿Por qué es importante saber qué tan
bueno es el desempeño de cada avión? ¿Por qué es importante saber qué tan
bueno es el desempeño de una Computadora?
¿Para qué me sirve?
Evaluación del Desempeño Determinar
rendimiento Medir Categorizar Comparar Toma de decisiones
Aplicación Mejorar Reemplazar
Evaluación del Desempeño
Determinar rendimiento Diferentes Momentos
Diseño Construcción Explotación
Conceptos de Evaluación Entidad: Objeto en evaluación [Computador] Concepto cuantificable: Lo que deseamos
evaluar de la entidad: rendimiento, calidad, etc. Factores: atributos o características de la
entidad que determinan el concepto cuantificable. Deben ser medibles directa o indirectamente (magnitudes).
Medida: valor de una magnitud obtenido mediante un instrumento de medición confiable.
Métrica.
Métrica El método de medición definido y la
escala de medición [ISO 14598--1:1999]. Medidas estándarizadas
Permiten comparar arquitecturas disímiles Base para el establecimiento de
indicadores de desempeño
Métricas de desempeño Externas:
Latencia o tiempo de respuesta. Productividad Disponibilidad
Interna Utilización
Métricas de desempeño Externas:
Latencia o tiempo de respuesta. t Productividad. w Disponibilidad. d
Interna Utilización. g
Consideraciones de Costo ¡Desempeño a Cualquier Costo! Evaluación Costo-Beneficio Consideraciones económicas: ROI y TCO Avances tecnológicos Eficiencia
Menor consumo de material Menor consumo de energía
Efectos comerciales Masificación y economías de escala
Técnicas de Evaluación Medida del rendimiento de la ejecución
Sistema real
Modelado analítico Sistema real o proyectado
Modelado por simulación Sistema real o proyectado.
Modelado Híbrido
Rendimiento El tiempo de ejecución (t) es la medida que
mejor caracteriza el rendimiento de la computadora.
Rendimiento está en proporción inversa al tiempo de ejecución:
Rendimiento Una computadora A ejecuta un programa
de prueba p en 10 segundos. ¿Cuánto es su rendimiento?
¿ Qué utilidad ? Comparar 2 computadoras
Rendimiento A ejecuta un programa p en 10 segundos y
B ejecuta p en 12. ¿Cuánto es el rendimiento de cada una? ¿Cuál rinde más?
A rinde más
Rendimiento: La relación del rendimiento de dos
Computadoras X e Y: n = Rx/Ry. n representa cómo es el rendimiento de X
respecto al rendimiento de Y. n se conoce como ganancia “G” (si X es
un reemplazo de Y) o como aceleración (A) o mejora de rendimiento (si X es una evolución de la misma arquitectura de Y).
Rendimiento A ejecuta un programa p en 10 segundos
y B ejecuta p en 12. ¿Cuánto es el rendimiento de cada una? ¿Cuál rinde más?
n > 1 Ra > Rb
Rendimiento Incremento neto de rendimiento:
n’ = n – 1
Porcentaje de superación en rendimiento de dos PC: n% = ( n – 1) * 100%
También esto se puede expresar como:
Rendimiento A ejecuta un programa p en 10
segundos y B ejecuta p en 12. Determine incremento de rendimiento neto y el incremento neto porcentual.
Factores que determinan el tiempo de ejecución
Período del pulso de reloj base del procesador: Pulso más ancho, mayor latencia.
Y por ende la Frecuencia de reloj, ya que
Podemos decir que:
La constante c acá corresponde al número total de ciclos de reloj que consumió el programa.
Factores que determinan el tiempo de ejecución
Ejemplo : Suponga que la máquina A ejecuta un programa p en 10s y su CPU tiene una frecuencia de reloj de 100MHz. Usted está diseñando una máquina B y quiere que ésta ejecute p en solamente 6 segundos aunque sabe que para ello requiere una mayor frecuencia de reloj y como consecuencia, serán requeridos 20% más de ciclos para completar p. ¿Qué frecuencia debe tener B para lograr el objetivo?
Factores que determinan el tiempo de ejecución
Datos :
(20% más)
Modelo:
Solución:
𝐶𝑎=𝑡𝑎∗ 𝑓 𝑎=10𝑠∗100𝑀𝐻𝑧=1000∗106
𝑓 𝑏=𝑐𝑏𝑡𝑏
=(1.2∗𝑐𝑎)
𝑡𝑏=1.2∗1000∗10
6
6𝑠=200𝑀𝐻𝑧
Cálculo del tiempo de Ejecución
El tiempo de ejecución depende netamente del total de ciclos requeridos para ejecutar el programa y del período o duración del ciclo.
Un programa es una serie de instrucciones (N) a ejecutar. Cada instrucción consume una cantidad de ciclos.
La cantidad total de ciclos que emplea una máquina para ejecutar un programa corresponde a la suma de los ciclos que consumen cada una de sus instrucciones.
Por tanto:
N
i
iCt1
*
Cálculo del tiempo de Ejecución
Es posible determinar grupos de instrucciones que tienen la misma cantidad de ciclos de ejecución.
Siendo CPI la cantidad de ciclos por instrucción que utilizan las instrucciones del grupo i-ésimo y Ni la cantidad total de instrucciones del grupo i-ésimo ejecutadas.
)*(*1
i
m
ii NCPIt
Cálculo del tiempo de Ejecución
En algunas arquitecturas incluso, el CPI es constante o se puede aproximar con bastante precisión como la cantidad media de ciclos por instrucción, con lo cual, t se podría definir como:
Donde CPI es la cantidad constante de ciclos por instrucción y N es el total de instrucciones ejecutadas.
Ley de Amdahl Uno para Todos y Todos para Uno
¿Qué pasa si Uno no es para Todos?
Cuando el rendimiento de una PC es mayor como efecto de introducir una mejora, decimos que tenemos una aceleración de rendimiento.
Ley de Amdahl La aceleración global del sistema, sin embargo,
estará limitada por la fracción de tiempo en que dicha mejora es efectiva.
Papel de la Utilización
Ag = Rmejorado/Roriginal Rmejorado = Rnuevo * % tiempo usada mejora + Roriginal * % tiempo sin usar mejora
Ley de Amdhal Siendo tg el nuevo tiempo de ejecución global
del sistema al incorporar la mejora, t el tiempo de ejecución original sin mejora, n la ganancia o aceleración parcial que la mejora proporciona, y g, la fracción mejorada (utilización) o el porcentaje de tiempo real que la mejora es efectiva, entonces:
tg = t tramo en que la mejora es efectiva + t tramo sin mejora
Ley de Amdhal
ntt
n
ttg
)1(*)1(**
nt
tA
mejoradog
)1(
1
Ley de Amdhal
Ejemplo: Si una máquina se mejora duplicando la frecuencia del CPU, pero la mejora solo es efectiva durante el 60% del ciclo de instrucción por el acceso a memoria, la aceleración global del sistema sería:
Ag = 1 / 0.4 + (0.6/2) = 1/ 0.7 = 1.43 Nota: g = 0.6 y n = 2
Ley de Amdhal Conclusiones:
Agilizar el caso común. Evitar las excepciones en el mainstream
de procesamiento (penalizar a todos por unos pocos).
Métricas populares de rendimiento MIPS
MIPS Millones de Instrucciones (ejecutadas) por Segundo. Velocidad o frecuencia de ejecución de instrucciones. Métrica del tipo productividad.
Es una frecuencia, expresa el rendimiento en proporción inversa al tiempo lo cual es adecuado porque mayores MIPS indican máquinas más rápidas.
El problema: “si se emplea como método comparativo, debe tenerse cuidado que las máquinas tengan características similares”.
66 10*10* CPI
f
t
NMIPS
Métricas populares de rendimiento “MIPS relativos”
Surgen para resolver el problema de dos máquinas con repertorios o arquitecturas diferentes.
Contrasta los MIPS de una máquina en comparación con una máquina de referencia.
Técnica: Los MIPS relativos se obtienen del producto de la razón de los tiempos de ejecución de una máquina de referencia y la evaluada con los MIPS de la máquina de referencia.
referenciaevaluando
referencialativos MIPS
t
tMIPS *Re
Métricas populares de rendimiento MFLOPS
Millones de Instrucciones en Coma Flotante por Segundo.
Solo contabiliza las operaciones en punto flotante. Son más consistentes que los MIPS por cuanto la
cantidad de operaciones no cambia de máquina a máquina.
Problema: los conjuntos de operaciones en punto flotante disponibles de máquina a máquina no son estándares y por tanto algunas operaciones se deben implementar en función de otras.
610*t
OMFLOPS PF
Métricas populares: MFLOPS Normalizados
Este método concede pesos relativos a cada tipo de operación en punto flotante y permite además considerar las operaciones enteras. Al asignar pesos mayores a las operaciones complejas se puede “normalizar” la diferencia de velocidades permitiendo comparar de manera más equitativa de dos máquinas.
Problema: evalúa el rendimiento para ese programa tipo de prueba (benchmark) específico y que aunque representa una opción para comparar dos computadoras, no representa el rendimiento de la máquina.
610*
_*
t
relativopesoOMFLOPS ii
osnormalizad
Tipos de programas de prueba o benchmarks
Programas reales: Medidas basadas en el uso real del computador.
Núcleos (Kernels): Partes “clave” de programas Benchmarks reducidos (Toys): 10-100 líneas de
código que realizan pequeños algoritmos habituales. Fáciles pero muy insuficientes.
Benchmarks sintéticos: elaborados expresamente para evaluar rendimiento imitando el comportamiento de programas de verdad, pero lo consiguen a medias.