Ing. José Díaz Chow ARQUITECTURA DE MÁQUINAS COMPUTADORAS III Introducción.

Post on 12-Jan-2015

43 views 26 download

Transcript of Ing. José Díaz Chow ARQUITECTURA DE MÁQUINAS COMPUTADORAS III Introducción.

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.