William Stallings Organización y Arquitectura de Computadores Capítulo 16

Download Report

Transcript William Stallings Organización y Arquitectura de Computadores Capítulo 16

William Stallings
Organización y Arquitectura
de Computadores
Capítulo 16
Procesamiento paralelo
1
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.
2
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.
3
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.
4
5
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.
6
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.
7
Taxonomía de las arquitecturas
paralelas
Organizaciones de computadores
Una secuencia de
instrucción,
múltiples secuencias
de datos (SIMD)
Una secuencia de
instrucción, una
secuencia de datos
(SISD)
Múltiples secuencias
de instrucción, una
secuencia de datos
(MISD)
Múltiples secuencias
de instrucción,
múltiples secuencias
de datos (MIMD)
Monoprocesadores
Procesadores
vectoriales
Procesadores
matriciales
Memoria compartida
(fuertemente acoplada)
Memoria distribuida
(débilmente acoplada)
Clusters
Multiprocesador
simétrico (SMP)
Acceso no
uniforme a
memoria
(NUMA)
8
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.
9
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.
10
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.
11
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.
12
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
13
los niveles de trabajo, tarea, archivo y datos.
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.
14
Diagrama de bloques genérico de
un multiprocesador fuertemente
acoplado
Procesador
Procesador
Procesador
E/S
Red de
E/S
interconexión
E/S
Memoria principal
15
Organización de los
multiprocesadores simétricos
Bus de tiempo compartido o común.
Memoria multipuerto.
Unidad de control central.
16
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.
17
Ventajas del bus de tiempo
compartido
Simplicidad.
Flexibilidad.
Fiabilidad.
18
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
19
20
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.
21
M1
M2
Mk
P1
E/S 1
Pn
E/S m
Memorias multipuerto
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.
23
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.
24
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.
25
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.
26
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.
27
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.
28
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.
29
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.
30
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.
31
Diagrama de transición de
estados MESI
No
válido
Compartido
Modificado
Exclusivo
(a) Línea en el procesador que inicia la transferencia
Acierto de lectura
Fallo de lectura, compartida
Fallo de lectura, exclusiva
Acierto de escritura
Fallo de escritura
Acierto de sondeo en lectura
Acierto de sondeo en escritura o
lectura-para-modificación
No
válido
Compartido
Modificado
Exclusivo
(a) Línea en una cache sondeando el bus
Escribir en memoria la línea de cache
modificada
Invalidar transacción
Lectura-para-modificación (RWITM)
Cargar línea de cache
32
“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”.
33
Beneficios del “cluster”
Escalabilidad absoluta.
Escalabilidad incremental.
Alta disponibilidad.
Mejor relación precio/prestaciones.
34
Configuraciones de “clusters”:
servidor sin disco compartido
E/S
E/S
Enlace de alta velocidad para mensajes
E/S
E/S
35
Configuraciones de “clusters”:
disco compartido
Enlace de alta velocidad para mensajes
E/S
E/S
E/S
E/S
E/S
E/S
36