William Stallings Organización y Arquitectura de Computadores

36
1 William Stallings Organización y Arquitectura de Computadores Capítulo 16 Procesamiento paralelo

description

William Stallings Organización y Arquitectura de Computadores. Capítulo 16 Procesamiento paralelo. Organizaciones Con Varios Procesadores. SISD: una secuencia de instrucciones y una secuencia de datos. SIMD: una secuencia de instrucciones y múltiples secuencias de datos. - PowerPoint PPT Presentation

Transcript of William Stallings Organización y Arquitectura de Computadores

Page 1: William Stallings  Organización y Arquitectura de Computadores

1

William Stallings Organización y Arquitectura de Computadores

Capítulo 16Procesamiento paralelo

Page 2: William Stallings  Organización y Arquitectura de Computadores

2

Organizaciones Con Varios Procesadores

SISD: una secuencia de instrucciones y una secuencia de datos.

SIMD: una secuencia de instrucciones y múltiples secuencias de datos.

MISD: múltiples secuencias de instrucciones y una secuencia de datos.

MIMD: múltiples secuencias de instrucciones y múltiples secuencias de datos.

Page 3: William Stallings  Organización y Arquitectura de Computadores

3

Una secuencia de instrucciones y una secuencia de datos (SISD)

Un único procesador interpreta una única secuencia de instrucciones.

Datos almacenados en una única memoria.

Computadores monoprocesador.

Page 4: William Stallings  Organización y Arquitectura de Computadores

4

Una secuencia de instrucciones y múltiples secuencias de datos (SIMD)

Una única instrucción máquina controla paso a paso la ejecución simultánea de un cierto número de elementos de proceso.

Cada elemento de proceso tiene una memoria asociada.

Cada instrucción es ejecutada por cada procesador, con un conjunto de datos diferentes.

Procesadores vectoriales y matriciales.

Page 5: William Stallings  Organización y Arquitectura de Computadores

5

Page 6: William Stallings  Organización y Arquitectura de Computadores

6

Múltiples secuencias de instrucciones y una secuencia de datos (MISD)

Se transmite una secuencia de datos a un conjunto de procesadores.

Cada procesador ejecuta una secuencia de instrucciones diferente.

Esta estructura nunca ha sido implementada.

Page 7: William Stallings  Organización y Arquitectura de Computadores

7

Múltiples secuencias de instrucciones y múltiples secuencias de datos (MIMD)

Un conjunto de procesadores ejecuta simultáneamente secuencias de instrucciones diferentes.

Conjuntos de datos diferentes.Los SMP, los “clusters”, y los sistemas

NUMA son ejemplos de esta categoría.

Page 8: William Stallings  Organización y Arquitectura de Computadores

8

Taxonomía de las arquitecturas paralelas

Organizaciones de computadoresOrganizaciones de computadores

Una secuencia de Una secuencia de instrucción, una instrucción, una secuencia de datos secuencia de datos (SISD)(SISD)

Una secuencia de Una secuencia de instrucción, instrucción, múltiples secuencias múltiples secuencias de datos (SIMD)de datos (SIMD)

Múltiples secuencias Múltiples secuencias de instrucción, una de instrucción, una secuencia de datos secuencia de datos (MISD) (MISD)

Múltiples secuencias Múltiples secuencias de instrucción, de instrucción, múltiples secuencias múltiples secuencias de datos (MIMD) de datos (MIMD)

MonoprocesadoresMonoprocesadores

Procesadores Procesadores vectorialesvectoriales

ProcesadoresProcesadoresmatricialesmatriciales

Memoria compartidaMemoria compartida(fuertemente acoplada)(fuertemente acoplada)

Memoria distribuidaMemoria distribuida(débilmente acoplada)(débilmente acoplada)

ClustersClusters

MultiprocesadorMultiprocesadorsimétrico (SMP)simétrico (SMP)

Acceso no Acceso no uniforme a uniforme a memoria memoria (NUMA)(NUMA)

Page 9: William Stallings  Organización y Arquitectura de Computadores

9

Organización MIMD

Son procesadores de uso general.Cada uno es capaz de procesar todas las

instrucciones necesarias para realizar las transformaciones apropiadas de los datos.

Se pueden subdividir, además, según la forma que tienen los procesadores para comunicarse.

Page 10: William Stallings  Organización y Arquitectura de Computadores

10

SMP (fuertemente acoplado)(Symmetric MultiProcessor)

Varios procesadores comparten una única memoria.

Los procesadores se comunican unos con otros a través de esa memoria compartida.

Características del multiprocesador simétrico (SMP): Comparten la memoria principal. Comparten un bus para acceder a la memoria. El tiempo de acceso a memoria es aproximadamente

el mismo para todos los procesadores.

Page 11: William Stallings  Organización y Arquitectura de Computadores

11

NUMA (fuertemente acoplado)(NonUniform Memory Access)

Acceso no uniforme a memoria.El tiempo de acceso a zonas de memoria

diferentes puede diferir en un computador NUMA.

Page 12: William Stallings  Organización y Arquitectura de Computadores

12

Clusters (débilmente acoplados)

Un conjunto de computadores monoprocesador independientes, o de SMP, pueden interconectarse para formar un “cluster”.

La comunicación entre los computadores se realiza mediante conexiones fijas o mediante algún tipo de red.

Page 13: William Stallings  Organización y Arquitectura de Computadores

13

Multiprocesadores simétricos

Un SMP es un computador autónomo con las siguientes características: Hay dos o más procesadores similares de capacidades

comparables. Estos procesadores comparten la memoria principal y las E/S. Están interconectados mediante un bus u otro tipo de sistema de

interconexión. El tiempo de acceso a memoria es aproximadamente el mismo

para todos los procesadores. Todos los procesadores comparten los dispositivos de E/S, bien a

través de los mismos canales, o bien mediante canales distintos que proporcionan caminos de acceso al mismo dispositivo.

Todos los procesadores pueden desempeñar las mismas funciones (de ahí el término simétrico).

El sistema está controlado por un sistema operativo integrado, que proporciona la interacción entre los procesadores y sus programas en los niveles de trabajo, tarea, archivo y datos.

Page 14: William Stallings  Organización y Arquitectura de Computadores

14

Ventajas de un SMP

Prestaciones: Cuando el trabajo a realizar por un computador puede

organizarse en paralelo.

Disponibilidad: Debido a que todos los procesadores pueden realizar las

mismas funciones, un fallo en un procesador no hará que el computador se detenga.

Crecimiento incremental: Se pueden aumentar las prestaciones del sistema,

añadiendo más procesadores.

Escalado: Los fabricantes pueden ofrecer una gama de productos

con precios y prestaciones diferentes, en función del número de procesadores que configuran el sistema.

Page 15: William Stallings  Organización y Arquitectura de Computadores

15

Diagrama de bloques genérico de un multiprocesador fuertemente acoplado

ProcesadorProcesador ProcesadorProcesador ProcesadorProcesador

E/SE/S

E/SE/S

E/SE/S

Red de Red de

interconexióninterconexión

Memoria principalMemoria principal

Page 16: William Stallings  Organización y Arquitectura de Computadores

16

Organización de los multiprocesadores simétricos

Bus de tiempo compartido o común.Memoria multipuerto.Unidad de control central.

Page 17: William Stallings  Organización y Arquitectura de Computadores

17

Bus de tiempo compartido

Es el mecanismo más simple. La estructura y las interfaces son básicamente las

mismas que las de un sistema de un único procesador. Se proporcionan los siguientes elementos para el:

Direccionamiento: distinción de los módulos del bus (origen y destino)

Arbitraje: cualquier módulo puede funcionar temporalmente como maestro.

Tiempo compartido: cuando un módulo está controlando el bus, los otros módulos tienen que esperar y, si es necesario, suspender su operación.

Existen varios procesadores, además de varios módulos de E/S.

Page 18: William Stallings  Organización y Arquitectura de Computadores

18

Ventajas del bus de tiempo compartido

Simplicidad.Flexibilidad.Fiabilidad.

Page 19: William Stallings  Organización y Arquitectura de Computadores

19

Desventajas del bus de tiempo compartido

La prestación está limitada por el tiempo de ciclo del bus.

Cada procesador debería estar equipado con una memoria cache para mejorar las prestaciones: Se reduciría el número de accesos.

Se pueden producir problemas de coherencia de cache: Este problema es resuelto por el hardware

Page 20: William Stallings  Organización y Arquitectura de Computadores

20

Page 21: William Stallings  Organización y Arquitectura de Computadores

21

Memoria multipuerto

Permite el acceso directo e independiente a los módulos de memoria desde cada uno de los procesadores.

Se necesita una cierta lógica para resolver los conflictos.

Se necesitan pocas o ninguna modificación en los procesadores o en los módulos.

Page 22: William Stallings  Organización y Arquitectura de Computadores

M1 M2 Mk

Pn

P1

E/S 1

E/S m

Memorias multipuerto

Page 23: William Stallings  Organización y Arquitectura de Computadores

23

Ventajas y desventajas de la memoria multipuerto

Más compleja: Se precisa añadir al sistema de memoria una

buena cantidad de lógica. Se consiguen mejores prestaciones. Cada procesador tiene un camino dedicado a cada

módulo de memoria. Permite configurar partes de la memoria como

privadas para uno o más procesadores: Incremento de la seguridad.

Se debe utilizar una estrategia de escritura directa para controlar la cache.

Page 24: William Stallings  Organización y Arquitectura de Computadores

24

Unidad de control central

Encauza las distintas secuencias de datos entre los distintos módulos independientes.

Puede almacenar temporalmente peticiones. Puede realizar las funciones de arbitraje y

temporización. Puede transmitir mensajes de estado y control

entre los procesadores. Puede alertar sobre los cambios en las caches. Las interfaces de E/S, memoria y procesador no

sufren cambios esenciales. Ejemplo: mainframe tipo S/370 de IBM.

Page 25: William Stallings  Organización y Arquitectura de Computadores

25

Puntos clave de diseño de un sistema operativo

Procesos concurrentes simultáneos.Planificación.Sincronización.Gestión de memoria.Fiabilidad y tolerancia ante los fallos.

Page 26: William Stallings  Organización y Arquitectura de Computadores

26

Soluciones software

El compilador y el sistema operativo se encargan del problema de la necesidad de circuitería y lógica hardware adicional.

La sobrecarga se transfiere para compilar el tiempo. La complejidad del diseño se transfiere desde el

hardware al software. Por otra parte, el software tiende a tomar ciertas

decisiones conservadoras: Utilización ineficiente de la cache.

Analizan el código para determinar periodos seguros para las variables compartidas.

Page 27: William Stallings  Organización y Arquitectura de Computadores

27

Soluciones hardware

Generalmente se denominan “protocolos de coherencia de cache”.

Permiten reconocer dinámicamente, en el momento de la ejecución, problemas potenciales.

Permiten un uso más efectivo de las caches.Aproximaciones transparentes para el

programador.Protocolos de directorio.Protocolos de sondeo.

Page 28: William Stallings  Organización y Arquitectura de Computadores

28

Protocolos de directorio

Recogen y mantienen la información acerca de las copias de las líneas en la cache.

El directorio se almacena en la memoria principal.

Las peticiones se comprueban comparándose con el directorio.

Se ejecutan las transferencias apropiadas. Los esquemas de directorio tienen un cuello de

botella central. Son efectivos en sistemas a gran escala que

poseen esquemas complejos de interconexión.

Page 29: William Stallings  Organización y Arquitectura de Computadores

29

Protocolos de sondeo snoopy protocols

Distribuyen la responsabilidad de mantener la coherencia de cache entre todos los controladores de cache.

Una cache reconoce cuándo una línea está compartida con otras caches.

Las actualizaciones se anuncian a otras caches.

Se adaptan bien a multiprocesadores basados en un bus.

Incremento en el tráfico del bus.

Page 30: William Stallings  Organización y Arquitectura de Computadores

30

Invalidar-si-escritura

Múltiples procesadores que leen, pero uno sólo que escribe.

Cuando se quiere hacer una escritura, se invalidan las otras caches de la línea.

El procesador que escribe tiene acceso exclusivo hasta que la línea sea requerida por otro procesador.

Se utiliza en los sistemas Pentium II y Power PC. El estado de cada línea se marca como modificado,

exclusivo, compartido, o no válido. El protocolo de invalidar-si-escritura se llama MESI.

Page 31: William Stallings  Organización y Arquitectura de Computadores

31

Actualizar-si-escritura

Varios procesadores que escriben y leen.La palabra actualizada se distribuye a

todos los procesadores.Algunos sistemas implementan un sistema

adaptativo con características de ambas soluciones.

Page 32: William Stallings  Organización y Arquitectura de Computadores

32

Diagrama de transición de estados MESI

NoNoválidoválido

Compar-Compar-tidotido

Modifi-Modifi-cadocado

Exclu-Exclu-sivosivo

NoNoválidoválido

Compar-Compar-tidotido

Modifi-Modifi-cadocado

Exclu-Exclu-sivosivo

(a) Línea en el procesador que inicia la transferencia(a) Línea en el procesador que inicia la transferencia (a) Línea en una cache sondeando el bus(a) Línea en una cache sondeando el bus

Acierto de lecturaAcierto de lectura

Fallo de lectura, compartidaFallo de lectura, compartida

Fallo de lectura, exclusivaFallo de lectura, exclusiva

Acierto de escrituraAcierto de escritura

Fallo de escrituraFallo de escritura

Acierto de sondeo en lecturaAcierto de sondeo en lectura

Acierto de sondeo en escritura o Acierto de sondeo en escritura o lectura-para-modificaciónlectura-para-modificación

Escribir en memoria la línea de cache Escribir en memoria la línea de cache modificadamodificada

Invalidar transacciónInvalidar transacción

Lectura-para-modificación (RWITM)Lectura-para-modificación (RWITM)

Cargar línea de cacheCargar línea de cache

Page 33: William Stallings  Organización y Arquitectura de Computadores

33

“Clusters”

Son la alternativa a los SMP.Prestaciones y disponibilidad elevadas.Aplicaciones propias de un servidor.Un grupo de computadores completos

interconectados que trabajan conjuntamente como un único recurso de cómputo, creándose la ilusión de que se trata de una sóla máquina.

Cada computador se denomina “nodo”.

Page 34: William Stallings  Organización y Arquitectura de Computadores

34

Beneficios del “cluster”

Escalabilidad absoluta.Escalabilidad incremental.Alta disponibilidad.Mejor relación precio/prestaciones.

Page 35: William Stallings  Organización y Arquitectura de Computadores

35

Configuraciones de “clusters”: servidor sin disco compartido

Enlace de alta velocidad para mensajesEnlace de alta velocidad para mensajesE/SE/SE/SE/SE/SE/S

E/SE/S

Page 36: William Stallings  Organización y Arquitectura de Computadores

36

Configuraciones de “clusters”: disco compartido

E/SE/S

E/SE/SE/SE/S

E/SE/S

Enlace de alta velocidad para mensajesEnlace de alta velocidad para mensajes

E/SE/S E/SE/S