Presentación U1.2

Download Report

Transcript Presentación U1.2

UNI-FEC

ARQUITECTURA DE MÁQUINAS COMPUTADORAS III

U1.2

Unidad 1: PARALELISMO Y MEJORA DEL RENDIMIENTO

Ing. José Díaz Chow

¿Qué hemos abordado?

       Evaluación de la computadora: ¿Para qué?  ¿Qué?  ¿Cómo?

Métricas de evaluación Técnicas de Evaluación Rendimiento Tiempo de ejecución Ley de Amdahl Benchmarks (medición)

Tipos de programas de prueba o benchmarks

Programas reales: Usar la aplicación real para la que se requiere el computador.

Núcleos (Kernels): Usa partes “clave” de programas demandantes. Orientados a cálculos intensivos.

Benchmarks reducidos (Toys): 10-100 líneas de código que realizan pequeños algoritmos habituales. Fáciles pero muy limitados.

Benchmarks sintéticos: Elaborados expresamente para evaluar rendimiento imitando el comportamiento de programas de verdad, pero sin tareas específicas.

1.2. Reducción del Tiempo de Ejecución ¡ Queremos mejorar el Rendimiento de la Computadora !

 Rendimiento es el inverso del tiempo de ejecución:  𝑹 = 𝒕 Así que, si reduzco el tiempo de ejecución, incremento el rendimiento.

𝟏

¿Cómo reducir el tiempo de ejecución?

 Factores que determinan t:

𝑡 = 𝝉 ∗ 𝐶𝑃𝐼 ∗ 𝑁

 Reducir uno o más factores sin que incrementen otros permitiría reducir t:  ¿ De qué depende 𝝉 ? ¿Cómo reducirlo?

 ¿ De qué depende el 𝐶𝑃𝐼 ? ¿Cómo reducirlo?

 ¿ De qué depende 𝑁 ? ¿Cómo reducirlo?

Reducción del período (

t

)

  El t de reloj debe ser lo suficientemente ancho para que se completen todas las microoperaciones de control del paso de control más tardado.

Para reducir t es requerido, por tanto, que las operaciones de control sean más rápidas (para que no se tenga que incrementar el CPI).

 Depende del avance de la tecnología en los procesos de fabricación de sistemas digitales.

Reducción del número de Instrucciones (N)

    Depende de la arquitectura.

Arquitecturas con instrucciones complejas permiten realizar operaciones con menos instrucciones que otras con instrucciones más simples:   Operaciones integradas: CMP + Jx (2 inst.) vs BRx (1 inst.: Salta si se cumple la condición x) Múltiples modos: LOAD Rf, Rs(d) + ADD Rd, Rf, Rg (2 inst. Arq R3) vs ADD Rs(d), Rf (1 inst. Arq R2) Dependencia de instrucciones complejas con m Programación tiende a t mayor.

¡No rinde buenos frutos!

Reducción de ciclos por instrucción (CPI)

 Depende de la arquitectura: ¡Cantidad de operaciones que se pueden realizar en un ciclo de reloj!

 Arquitecturas con instrucciones complejas obligan a altos CPIs  Arquitecturas con instrucciones simples pueden reducir CPI. Meta a aspirar: CPI =1  Proyecto RISC lo demostró.

 ¡Mejor apuesta para el arquitecto!

Mejorando nuestra arquitectura X (R2)

 Reducir modos para simplificar la UC: Arquitectura R3:  Transferencia de M  R: LOAD, y R  M: STORE.

 Usan modo Índice.

 Operaciones OP: Solo registros o inmediatos.

 Move R1, R2  Add R2, R1, R0; ¡R0 siempre vale 0!

 Bus común  Conexiones directas: más rápido.

 Uso de más registros en un Banco de Registros: 2 puertos de lectura y 1 de escritura simultáneos

1.3. Mejoras al sistema de memoria

Sistema de Memoria 

Despues del CPU, el sistema de memoria es el más usado.

¡Eliminar los WMFC!

Mejorar el desempeño del sistema de Memoria.

Mejorando el desempeño de M

    ¿Cuáles son los factores de desempeño de la Memoria?

Latencia: Tiempo de acceso, tiempo de ciclo.

 Depende de la tecnología de fabricación.

Productividad: Velocidad de transferencia.

 Ancho del Bus  Solapamiento: memorias entrelazadas.

Disponibilidad:  Detección y corrección de errores  Capacidad: Memoria Virtual

Jerarquía de Memoria

 Diferentes tipos de memorias: Vt y C.

 Memorias más rápidas tienen limitado tamaño y alto precio.

 Uso de memorias intermedias.

 Principio de localidad de referencia.

M ay or C ap ac id ad CPU Registros Caché Caché Externa Memoria Principal M en o r V elo cid ad d e t ra ns fe re nc ia Unidades de almacenamiento secundario

1.4. Mejoras al sistema de E/S

Sistema de Entrada Salida    

Comunicación con el exterior

 Leer Programas y Datos  Entregar resultados de procesamiento.

Diferentes dispositivos de E/S

 Entrada  Salida  Memoria de largo plazo

Diferentes tecnologías y velocidades Mejorar el desempeño del sistema de Entrada / Salida.

Mejorando el desempeño de E/S

 Diferentes dispositivos con diferentes métodos de transferencia de datos y velocidades  ¿Cuáles son los factores de desempeño del sistema de E/S?

 Latencia: Tiempo de respuesta.

 Depende de la tecnología de fabricación.

 Productividad: Velocidad de transferencia.

 Frecuencia  Ancho del Bus

Jerarquía de Buses

 Agrupa dispositivos con Vt similares.

 Equilibrio de ancho de banda entre dispositivos.

CPU + Cache L1 Cache L2 Controlador de vídeo "Bus" AGP

Controladores del sistema (Chipset)

Controlador de Memoria y Puente PCI Dispositivos IDE CD DD DD DD Slot Slot Controlador IDE Controlador de DMA Puente PCI a ISA LPT Com 1 Com 2 Bus del Sistema Memoria Principal Bus PCI SCSI LAN USB Slot Bus ISA Super I/O Disquete Teclado Ratón PS/2

ADM y Procesadores de E/S

 Agiliza las transferencias de dispositivos de E/S a M y viceversa.

 Emplea un procesador auxiliar dedicado.

 Solapa la ejecución de instrucciones con las operaciones de E/S  Diversos esquemas de acuerdo a las velocidades de los dispositivos

ADM y Procesadores de E/S

1.5. Introducción al Paralelismo

Paralelismo  ¿Y si aún con todas estas mejoras, no logramos el rendimiento deseado?

 Por Amdahl: CPU es el más apropiado de mejorar  ¿Se puede?

 Si solo hago una tarea, con un amigo, ¡puedo hacer dos!

Requerimientos de mayor desempeño

 Concurrencia (datos compartidos).  Capacidad de atención a múltiples usuarios y tareas.  Procesamiento de datos  de información  de conocimiento  Inteligencia.

 Tecnología de producción de hardware  poder a menor costo más  Ejecutor más rápido vs más ejecutores.

Procesamiento Paralelo

 Forma de procesamiento que explota ejecución de sucesos concurrentes.

 Simultaneidad  Multiplicidad  Solapamiento de ejecución de múltiples tareas.

 Multiplicidad de ejecutores en una o varias tareas.

Tipos de Paralelismo

• Temporal: El paralelismo que involucra solapamiento se denomina temporal porque permite la ejecución concurrente de sucesos sobre los mismos recursos en intervalos intercalados de tiempo. • Espacial: El paralelismo que permite simultaneidad real sobre múltiples recursos al mismo tiempo se denomina paralelismo espacial.

Nivel de Paralelismo

 Grano Grueso  Tarea  Programa  Grano Fino  Instrucción  Aritmético o de Bits

Técnicas de mejora y paralelismo

Multiprogramación y Tiempo compartido: técnica software (temporal): Sistema Operativo.

Solapamiento de las operaciones CPU y E/S: DMA e IOPs. Espacial.

Jerarquización y equilibrio de ancho de banda: Jerarquía de Memoria y de Buses: agilización y redundancia de datos. Espacial.

Técnicas de mejora y paralelismo

Solapamiento de la ejecución: Ciclo de instrucción solapado. Adelanta etapas del ciclo. Pre-Fetch y Pipelining. Temporal.

Multiplicidad de unidades ejecutoras: Sistemas superescalares. Espacial.

Sistemas paralelos: Paralelismo de datos y de código: SIMD y MIMD. Espacial

1.6. Clasificación de arquitecturas paralelas

Taxonomías

 Diferentes sistemas de clasificación.

 Más comunes:  Flynn: Basado en cardinalidad (s,m) de flujo de instrucciones y datos.

 Feng: Basado en tipo de transferencia o procesamiento (s,p) y cantidad de bits involucrados (b,w).

 Händler: Modelo matemático basado en métricas. Categoría es tupla de valores

Taxonomía de Flynn

 Flynn (1966) propone un sistema de clasificación por flujos de instrucciones y datos:  SISD >> SIMD >> MISD >> MIMD 

SISD (Simple flujo de instrucciones-simple flujo de

datos): Arquitecturas secuenciales estándares  Arquitectura Von Neumann.

Taxonomía de Flynn

SIMD (Simple flujo de instrucciones-múltiples

flujos de datos): Sistemas que ejecutan instrucciones sobre colecciones de datos a la vez:  Cálculo vectorial y matricial.

Taxonomía de Flynn

MISD ( Múltiples flujos de instrucciones-simple

flujo de datos): Arquitecturas no viables en el paradigma actual.

 Arquitecturas de flujo de datos.

 No aplicación real.

Taxonomía de Flynn

MIMD (Múltiples flujos de instrucciones-multiples

flujos de datos): Sistemas con múltiples ejecutores con una o múltiples tareas:  Multiprocesadores  Multicomputadores

Extensión a la Taxonomía de Flynn

 Johnson (1988) propone extender o detallar la taxonomía de Flynn en el caso de los MIMD:

Taxonomía de Feng

 Tse-yun-Feng, sugiere el grado de paralelismo como criterio de clasificación: Máximo grado de paralelismo ( P ) = número máximo de dígitos binarios que pueden ser procesados en una unidad de tiempo  Grado medio de paralelismo ( Pm ) y tasa de utilización ( de un sistema en T ciclos: g

)

Donde Pi es el No. de bits que puede ser procesados en el i-esimo ciclo del procesador, para T ciclos.

Tasa de utilización en T ciclos

Taxonomía de Feng

 Se puede clasificar a la computadoras de acuerdo a este criterio como:     Palabra-serie y bit-serie (PSBS). m=n=1. Procesamiento totalmente serial.

Palabra-paralelo y bit-serie (PPBS). m>1, n=1, procesamiento por sección de bits (procesa m palabras 1 bit cada vez).

Palabra-serie y bit-paralelo (PSBP). n>1, m=1, procesamiento por sección de palabra (procesa una palabra de n bits a la vez), computadoras actuales.

Palabra-paralelo y bit-paralelo (PPBP). n>1, m>1, procesamiento totalmente paralelo (se procesa una matriz de n*m bits a la vez), multiprocesadores y multicomputadoras (cluster´s).

Taxonomía de Feng

Taxonomía de Händler

 Wolfgang Händler: Esquema basado en encauzamiento del procesamiento en tres niveles “top-down”:    UCP (Unidad Central de procesamiento) UAL (Unidad Aritmética Lógica) El circuito a nivel Bit (CNB)  Un sistema computador (C )puede caracterizarse por una triada: C = < K x K’, D x D’, W x W’ > donde: K = Es el número procesadores K’ = Número de procesadores que puede encauzarse (pipelined) D = Es el número de ALU bajo el control de un CPU D’ = Número de ALU´s que pueden ser encauzadas (pipelined) W = Longitud de palabra de una UAL o un Elemento de Proceso (EP) W’ = El número de segmentos en pipeline en todas las ALU´s o EP´s

Taxonomía de Händler

 Por ejemplo para la Cray-1:  Es un procesador de 64-bit no segmentado, superescalar  Cuenta con12 unidades de proceso o ALUs, 8 de las cuales pueden trabajar en pipeline.  Diferentes unidades funcionales tienen de 1 a 14 segmentos los cuales pueden trabajas en pipeline.

 Por tanto: CRAY-1 = < 1, 12 x 8, 64 x ( 1~14) >

Otras Taxonomías

 Otras clasificaciones que se pueden encontrar en la literatura son:  Taxonomía de Shore´s (1973): Basada en la estructura y el número de unidades funcionales en la computadora. Se divide en 6 categorías o tipos de máquina: Máquina 1 … Máquina 6.

 Taxonomía estructural de Hockney y Jesshope´s. Se basa en la notación llamada “Estilo de Notación Estructural Algebraica (ASN)”, es muy compleja. C(Cray-1) = Iv 12 [ 12Ep 12 - 16M 50 ] r; 12Ep = {3Fp64,9B}  Existen otras nomenclatura que pretende ser más descriptiva y se basa en: multiplicidad del procesador, tamaño de grano, topología y control de multiplicidad.

Recomendaciones

U1: Paralelismo y mejora del rendimiento  Recordar consultar el folleto de clase.

 Recordar consultar la bibliografía:  Hwang  Henesy - Patterson