Prof.
Dr. José Antonio de Frutos Redondo
Dr. Raúl Durán Díaz
Departamento de Automática
Arquitectura e Ingeniería de Computadores
Tema 4
Arquitectura e Ingeniería de Computadores
Tema 4. Arquitecturas Paralelas
Arquitecturas paralelas.
¿En qué consiste una arquitectura paralela?
Evolución y convergencia de las arquitecturas paralelas.
Redes de interconexión.
Redes de interconexión estáticas.
Redes de interconexión dinámicas.
Coherencia en memoria cache.
Fuentes de incoherencia.
Arquitectura e Ingeniería de Computadores
Arquitecturas Paralelas
Comparativa Vectoriales-MPP
LINP
ACK (GFLOPS)
CRAY peak MPP peak
Xmp /416(4) Ymp/832(8) nCUBE/2(1024) iPSC/860 CM-2 CM-200 Delta Paragon XP/S C90(16) CM-5 ASCI Red T932(32) T3D Paragon XP/S MP
(1024)
Arquitectura e Ingeniería de Computadores
Sistemas vectoriales por fabricante
0
200
400
600
Cray
CDC
Fujitsu
Hitachi
NEC
Total
Lista TOP500 de los computadores más rápidos
Number of systems
Arquitectura e Ingeniería de Computadores
Arquitectura e Ingeniería de Computadores
Siglas en “Arquitecturas Paralelas”
SMP
: Symmetric Multiprocessor.
MPP
: Massively Parallel Processor. Típicamente el número
de procesadores es superior a 100.
Cluster
: Conjunto de computadores completos conectados
por una red comercial.
Cluster Beowulf
: Cluster de sistema operativo libre y
componentes comerciales ordinarios.
Constellation
: Cluster de nodos donde cada uno de ellos es
de tipo SMP.
Grid
: Colección de recursos autónomos geográficamente
distribuidos, acoplados mediante la infraestructura de
Arquitectura e Ingeniería de Computadores
Rendimiento de los sistemas en TOP500
En la siguiente gráfica, se muestra el rendimiento de los
sistemas colocados en la posiciones 1, 10, 100, 500 de la
lista TOP500.
También se muestra el crecimiento acumulado.
La curva del sistema número 500 crece con un factor de 1,9
anual.
El resto de curvas muestran un crecimiento anual en un factor
de 1,8.
Arquitectura e Ingeniería de Computadores
Criterios antiguos
Aplicaciones
Sistema
Software
SIMD
Paso de mensajes
Memoria compartida
Flujo de datos
Arrays
Sistólicos
Arquitectura
• Arquitecturas paralelas ligadas a modelos de
programa-ción.
• Arquitecturas divergentes, sin ningún patrón de
crecimien-to.
Criterios actuales
Extensión de la arquitectura de computadores para soportar
comunicaciones y cooperación.
ANTES: Conjunto de instrucciones.
AHORA: Comunicaciones.
Hay que definir:
Abstracciones, fronteras, primitivas (interfaces)
Estructuras que implementan los interfaces (hw o sw)
Compiladores, librerías y OS son cuestiones importantes en
nuestros días.
Arquitectura e Ingeniería de Computadores
Arquitecturas Paralelas
Recordemos que
Un computador paralelo es un conjunto de elementos de
proceso que se comunican y cooperan para resolver
rápidamente grandes problemas.
Podemos decir que la “Arquitectura Paralela” es:
Arquitectura convencional
+
Arquitecturas Paralelas
Arquitectura de comunicación
User/System Interface +
Implementación
User/System Interface
:
Primitivas de comunicación a nivel de usuario y a nivel de sistema.
Implementación:
Estructuras que implementan las primitivas: hardware o OS
Capacidades de optimización. Integración en los nodos de proceso.
Estructura de la red.
Objetivos:
Rendimiento
Arquitectura e Ingeniería de Computadores
Modelos de programación
Especifica las comunicaciones y la sincronización.
Ejemplos:
Multiprogramación
: no hay comunicación o sincronismo.
Paralelismo a nivel de programa.
Memoria compartida
: como un tablón de anuncios.
Paso de mensajes
: como cartas o llamadas telefónicas, punto a
punto.
Paralelismo de datos
: varios agentes actúan sobre datos
individuales y luego intercambian información de control antes
de seguir el proceso.
El intercambio se implementa con memoria compartida o con paso
de mensajes.
CAD
Multiprogramming
Shared
address
Message
passing
Data
parallel
Database
Scientific modeling
Parallel applications
Programming models
Communication abstraction
User/system boundary
Compilation
or library
Operating systems support
Communication hardware
Physical communication medium
Hardware/software boundary
Arquitecturas Paralelas
Arquitectura e Ingeniería de Computadores
Arquitecturas Paralelas
Evolución de los modelos arquitectónicos
Modelo de programación, comunicación y organización de la
máquina componen la arquitectura.
Espacio de memoria compartida.
Paso de mensajes.
Paralelismo de datos.
Otras:
Flujo de datos.
Memoria Compartida
Cualquier procesador puede referenciar directamente cualquier
posición de memoria.
La comunicación se realiza implícitamente por medio de cargas
y almacenamientos.
Ventajas:
Localización transparente.
Programación similar a tiempo compartido en uniprocesadores.
Excepto que los procesos se ejecutan en diferentes
procesadores.
Arquitectura e Ingeniería de Computadores
Memoria Compartida
Proporcionado en un amplio rango de plataformas.
Históricamente sus precursores datan de los años 60.
Desde 2 procesadores a cientos de procesadores.
Conocidas como máquinas de
memoria compartida.
Memoria Compartida
Proceso: espacio de direcciones virtuales más una o varias
hebras.
Parte de las direcciones son compartidas por varios
procesos.
Las escrituras en posiciones compartidas son visibles a las
otras hebras (también en otros procesos).
Es la extensión natural del modelo uniprocesador: memoria
convencional; operaciones atómicas especiales para la
sincronización.
Arquitectura e Ingeniería de Computadores
Memoria Compartida
Store
P1
P2
Pn
P0
Load
P
0pr i vat e
P
1pr i vat e
P
2pr i vat e
Pn pr i vat e
Espacio de direcciones virtuales.
Conjunto de procesos con comunicación
por medio de memoria compartidas
Direcciones Físicas en la máquina
Memoria Compartida
I/O ctrl
Mem
Mem
Mem
Interconnect
Mem
I/O ctrl
Processor
Processor
Interconnect
I/O
devices
Hardware de comunicación
Arquitectura e Ingeniería de Computadores
Memoria Compartida
P
P
C
C
I/O
I/O
M
M
M
M
Estrategia de
comunicaciones en
“Mainframe”:
•Red de barras cruzadas.
•Inicialmente limitado por el
coste de los procesadores.
Después, por el coste de la
red.
•El ancho de banda crece
con
p.
Memoria Compartida
P
P
C
I/O
M
M
C
I/O
$
$
Estrategia de comunicaciones
en “Minicomputer”:
•Casi todos los sistemas con
microprocesadores usan bus.
•Muy usados para computación
paralela.
•Llamados SMP,
symmetric
multiprocessor
.
•El bus puede ser un cuello de
botella.
Arquitectura e Ingeniería de Computadores
Memoria Compartida
Ejemplo: Intel Pentium Pro
Quad.
Coherencia y multiproceso
integrados en el modulo
P-Pro bus (64-bit data, 36-bit addr ess, 66 MHz) CPU Bus interface MIU P-Pro module P-Pro module P-Pro module 256-KBL2 $ Interrupt controller PCI bridge PCI bridge Memory controller
Ejemplo: SUN Enterprise.
16 tarjetas de cualquier tipo:
procesadores + memoria, o I/O.
Gigaplane bus (256 data, 41 addr ess, 83 MHz)
SBUS SBUS SBUS
2 FiberChannel 100bT , SCSI Bus interface CPU/mem car ds P $2 $ P $2 $ Mem ctrl Bus interface/switch
I/O car ds
Arquitectura e Ingeniería de Computadores
Otras opciones en comunicación:
Problemas de interconexión: coste (barras cruzadas) o ancho de banda (bus).
Dance-hall: ampliable a menor coste que en barras cruzadas.
Latencia en acceso a memoria uniforme, pero alta.
NUMA (
non-uniform memory access):
Construcción de un simple espacio de memoria con latencias diferentes.
COMA: Arquitectura de memoria a base de caches compartidas.
M M ° ° ° M° ° ° M M ° ° ° M
Network Network P $ P $ P $ P $ P $ P $
UMA o Dance hall
NUMA
Ejemplo: Cray T3E
Ampliable a 1024 procesadores, enlaces de 480MB/s.
El controlador de memoria genera las peticiones para posiciones no locales.
SwitchP $
XY
Z Exter nal I/O
Mem ctrl and NI
Mem
Arquitectura e Ingeniería de Computadores
Construidos por medio de computadores completos,
incluyendo I/O.
Comunicación por medio de operaciones explícitas de
I/O.
Modelo de programación: acceso directo sólo a direcciones
privadas (memoria local), comunicación por medio de
mensajes (send/receive)
Diagrama de bloques similar al NUMA
Pero las comunicaciones se integran a nivel de I/O.
Como redes de
workstations
(
clusters
), pero mayor
integración.
Más fáciles de construir y ampliar que los sistemas
NUMA.
Modelo de programación menos integrado en el hardware.
Librerías o intervención del sistema operativo.
Paso de Mensajes
send
especifica el buffer a transmitir y el proceso receptor.
recv
especifica el proceso emisor y el
buffer
de
almacenamiento.
Son copias memoria-memoria, pero se necesitan los nombres
de procesos.
Opcionalmente se puede incluir el destino en el envío y unas
reglas de identificación en el destino.
En la forma simple, el emparejamiento se consigue por medio
de la sincronización de sucesos
send
/
recv
.
Existen múltiples variantes de sincronización.
Arquitectura e Ingeniería de Computadores
Paso de Mensajes
Proceso P
Proceso Q
Direcciones Y
Dir X
Send X, Q, t
Receive Y,P, t
,
Match
Espacio local
del proceso
Espacio local
Evolución en las máquinas de Paso de Mensajes
Primeras máquinas: FIFO en cada
enlace.
Modelo de programación muy
próximo al hw; operaciones simples
de sincronización.
Reemplazado por DMA, permitiendo
operaciones no bloqueantes.
Buffer de almacenamiento en
destino hasta
recv
.
Disminución de la influencia de la
topología (enrutado por hw).
Store&forward routing
: importa la
topología.
Introducción de redes multietapa.
Mayor coste: comunicación nodo red.
Simplificación de la programación
000 001 010 011 100 110 101 111
Arquitectura e Ingeniería de Computadores
Memory bus
Micr oChannel bus
I/O
i860 NI DMA
DRAM
IBM SP-2 node
L2 $ Power 2 CPU Memory contr oller 4-way interleaved DRAM General inter connection
network formed fr om 8-port switches
NIC
Ejemplo: IBM SP-2
Realizado a base
de estaciones
RS6000.
Memory bus (64-bit, 50 MHz) i860
L1 $
NI DMA i860
L1 $
Driver Mem ctrl 4-way interleaved DRAM Intel Paragon node 8 bits, 175 MHz, bidir ectional 2D grid network
with pr ocessing node attached to every switch
Sandia’ s Intel Paragon XP/S-based Super computer
Ejemplo Intel Paragon.
Arquitectura e Ingeniería de Computadores
La evolución y el papel del software ha difuminado las
fronteras entre memoria compartida y paso de mensajes.
send
/
recv
soporta memoria compartida vía
buffers
.
Se puede construir un espacio global de direcciones en Paso
de Mensajes.
También converge la organización del hardware.
Mayor integración para Paso de Mensajes (menor latencia,
mayor ancho de banda)
A bajo nivel, algunos sistemas de memoria compartida
implementan paso de mensajes en hardware.
Distintos modelos de programación, pero también en
convergencia.
Modelo de programación:
Las operaciones se ejecutan en paralelo en
cada elemento de la estructura.
Una hebra de control, ejecución paralela.
Un procesador asociado a cada elemento.
PE
PE
° ° °
PE
PE
PE
° ° °
PE
° ° °
° ° °
° ° °
Contr ol
processor
Paralelismo de Datos
Modelo arquitectónico:
Array
de muchos procesadores
simples, baratos y con poca
memoria.
Asociados a un procesador de
control que emite las
instrucciones.
Arquitectura e Ingeniería de Computadores
EVOLUCION
Rígida estructura de control (SIMD en la taxonomía de Flynn)
Populares cuando el coste ahorrado con la centralización era
alto.
En los 60, cuando la CPU era un armario.
Reemplazados por vectoriales a mediados de los 70.
Más flexibles y fáciles de manejar
Revivido en los 80 cuando aparecen
32-bit datapath slices
.
Aniquilados por los modernos microprocesadores.
Más razones para su desaparición:
Las aplicaciones regulares son fáciles de ejecutar por su
localidad en otro tipo de procesadores.
MIMD son eficaces y más generales en el paralelismo de datos.
El modelo de programación converge con SPMD (
single
program multiple data
).
1 b a + − × × × c e d f Dataflow graph f = a × d
Network Token stor e Waiting Matching Instruction fetch Execute Token queue Form token Network Program stor e a = (b +1) × (b − c)
d = c × e
Arquitectura e Ingeniería de Computadores
Flujo de Datos
EVOLUCIÓN
Claves:
Capacidad para el nombramiento de instrucciones, sincronización,
planificación dinámica.
Problemas:
Manejo de complejas estructuras de datos, como arrays.
Complejidad de la memoria de emparejamiento y la unidades de
memoria.
Convergencia al uso de procesadores y memoria convencional.
Soporte para conjuntos de hebras ejecutadas en distintos
procesadores.
Uso de memoria compartida.
Interconexión de sistemas paralelos
La misión de la red en una arquitectura paralela es
transferir
información
desde cualquier fuente a cualquier destino
minimizando la latencia
y con
coste proporcionado
.
La red se compone de:
nodos;
conmutadores;
enlaces.
La red se caracteriza por su:
topología
: estructura de la interconexión física;
enrutado
: que determina las rutas que los mensajes pueden o
deben seguir en el grafo de la red;
Arquitectura e Ingeniería de Computadores
Interconexión de sistemas paralelos
Clasificación de las redes por su topología.
Estáticas:
conexiones directas estáticas punto a punto entre los nodos;
fuerte acoplamiento interfaz de red-nodo;
los vértices del grafo de la red son nodos o conmutadores;
se clasifican a su vez:
Interconexión de sistemas paralelos
Clasificación de las redes por su topología.
Dinámicas:
los conmutadores pueden variar dinámicamente los nodos que
interconectan.
Se clasifican a su vez:
monoetapa;
multietapa:
bloqueante (línea base, mariposa, baraje);
reconfigurable (Beneš);
Arquitectura e Ingeniería de Computadores
Interconexión de sistemas paralelos
Parámetros característicos de una red:
Tamaño de la red:
número de nodos que la componen.
Grado de un nodo:
número de enlaces que inciden en el nodo.
Diámetro de la red
: es el camino mínimo más largo que se
puede encontrar entre dos nodos cualesquiera de la red.
Simetría
: una red es simétrica si todos los nodos son
Red lineal
Anillo Estrella
Arbol Malla
Red sistólica
Arquitectura e Ingeniería de Computadores
sí
nN
/2
n
n
hipercubo
n
no
2
N
−
2
r
2(
r
−
1)
4
malla - 2D (
r
x
r
)
no
N
−
1
2
N
−
1
estrella
no
N
−
1
2(
h
−
1)
3
arbol
(
h
= log
2N
+ 1)
sí
N
(
N
−
1)/2
1
N
−
1
totalmente conexa
sí
N
N
/2
2
anillo
no
N
−
1
N
−
1
2
lineal
simetría
enlaces
diámetro
grado
Tipo de red
Hipercubo 3D ciclo-conexo
Arquitectura e Ingeniería de Computadores
000
001
010
011
101
111
110
100
000 001 010 011 100 101 110 111
Conexión de nodos que se diferencian en el bit menos significativo
Conexión de nodos que se diferencian en el segundo bit
000 001 010 011 100 101 110 111Conexión de nodos que se diferencian en el bit más significativo
000 001 010 011 100 101 110 111Ejemplo de conexiones en un hipercubo 3
Redes dinámicas: son redes cuya configuración puede
modificarse. Hay dos tipos:
monoetapa.
multietapa.
Las redes monoetapa realizan conexiones entre
elementos de proceso en una sola etapa.
Puede que no sea posible llegar desde cualquier elemento a
cualquier otro, por lo que puede ser necesario recircular la
información (=>redes recirculantes)
Las redes multietapa realizan conexiones entre los
elementos de proceso en más de una etapa.
Arquitectura e Ingeniería de Computadores
Redes dinámicas
Redes dinámicas
EP0
EP1
EPn
EP0 EP1 EPn
EP0
EP1
EPn
M0 M1 Mm
Arquitectura e Ingeniería de Computadores
Redes de interconexión (multietapa)
Las cuatro configuraciones posibles de una caja de
conmutación de 2 entradas.
Cajas de conmutación
a
0a
1b
0b
1a
0a
1b
0b
1a
0a
1b
0b
1a
0a
1b
0b
1Paso directo
Cruce
Difusión superior
Difusión inferior
Redes dinámicas bloqueantes
Redes multietapa bloqueantes.
Se caracterizan porque no es posible establecer siempre una
nueva conexión entre un par fuente/destino libres, debido a
conflictos con las conexiones en curso.
Arquitectura e Ingeniería de Computadores
Redes dinámicas bloqueantes
Red de línea base:
Redes dinámicas bloqueantes
Arquitectura e Ingeniería de Computadores
Redes dinámicas bloqueantes
Red baraje perfecto:
000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111
Barajado perfecto
000 001 010 011 100 101 110 111 000 001 010 011 100 101 110 111Redes dinámicas reconfigurables
Redes multietapa reconfigurables.
Se caracterizan porque es posible establecer siempre una
nueva conexión entre un par fuente/destino libres, aunque haya
conexiones en curso, pero puede hacerse necesario un cambio
en el camino usado por alguna(s) de ellas (reconfiguración).
Arquitectura e Ingeniería de Computadores
Redes dinámicas reconfigurables
Red de Beneš:
Redes dinámicas reconfigurables
La red de Beneš se puede construir recursivamente:
Red de Benes 8 x 8
Red de Benes 4 x 4
Arquitectura e Ingeniería de Computadores
Redes dinámicas no bloqueantes
Redes dinámicas no bloqueantes.
Se caracterizan porque es posible establecer siempre una
nueva conexión entre un par fuente/destino libres sin
restricciones.
Son análogas a los conmutadores de barras cruzadas, pero
Redes dinámicas no bloqueantes
Red de Clos:
1
2
r
1
2
m
1
2
r n x m r x r m x n 1
n
1
n
Arquitectura e Ingeniería de Computadores
Coherencia en Memoria Cache
Estructuras comunes de la jerarquía de memoria en
multiprocesadores
Memoria cache compartida.
Memoria compartida mediante bus.
Coherencia en Memoria Cache
P1
Pn
Memoria principal
(Entrelazada)
Memoria cache
(Entrelazada)
Cache compartida
Pequeño número de
procesadores (2-8)
Fue común a mediados
de los 80 para conectar
un par de procesadores
en placa.
Arquitectura e Ingeniería de Computadores
Compartición por medio de
bus.
Ampliamente usada en
multiprocesadores de
pequeña y mediana escala
(20-30)
Forma dominante en las
máquinas paralelas
actuales.
Los microprocesadores
modernos están dotados
para soportar protocolos
de coherencia en esta
configuración.
P1
Pn
Memoria principal
Memoria
cache
Memoria
cache
bus
Salón de baile
Fácilmente escalable.
Estructura simétrica
UMA.
Memoria demasiado
lejana especialmente
en grandes sistemas.
P1
Pn
Memoria
principal
Memoria
cache
Memoria
cache
Red de interconexión
Memoria
principal
Arquitectura e Ingeniería de Computadores
Pn
Memoria
cache
Memoria
principal
Red de interconexión
P1
Memoria
cache
Memoria
principal
Coherencia en Memoria Cache
Memoria distribuida
•Especialmente atractiva par multiprocesadores escalables.
•Estructura no simétrica NUMA.
El problema de la coherencia
Datos actualizados en memoria principal y las caches
particulares.
Monoprocesadores:
Incoherencia en distintos niveles.
Operaciones de I/O.
Multiprocesadores:
Incoherencia en distintos niveles
Incoherencia en el mismo nivel
Arquitectura e Ingeniería de Computadores
Fuentes de incoherencia:
Los datos compartidos.
La migración de procesos.
Las operaciones de entrada-salida.
P0
P1
P2
Pn
Memoria
Memoria
cache
Fuentes de incoherencia
Datos compartidos
Arquitectura e Ingeniería de Computadores
Memoria
principal
P0
P1
P2
Pn
Memoria
cache
Datos compartidos
en caches de post-escritura.
P0
P1
P2
Pn
Memoria
Memoria
cache
P2
P0
Migración de procesos
en caches de escritura directa.
Arquitectura e Ingeniería de Computadores
P0
P1
P2
Pn
Memoria
principal
Memoria
cache
P2
P0
Migración de procesos
en caches de post-escritura.
Operaciones de entrada salida
Salida (post-escritura)
Memoria
principal
Memoria
cache
P0
P1
P2
Pn
Entrada
Arquitectura e Ingeniería de Computadores
Posibles soluciones
Caches locales.
Memoria cache compartida.
Caches privadas con protocolos de escucha.
Caches privadas con directorio compartido.
P X
P X
P X
P X X
X' I I I
X'
X' X' X' X'
X'
Políticas de mantenimiento de coherencia
Invalidar.
Actualizar.
Arquitectura e Ingeniería de Computadores
Protocolos de escucha
Protocolos
snoopy
Sistemas de memoria basados en bus.
Escucha de las operaciones (
snoop
)
Protocolos snoopy
Caches de escritura directa.
inválido
válido
R(j)
W(j)
R(i), W(i)
R(j)
W(i)
R(i)
Arquitectura e Ingeniería de Computadores
R(i)
R(j)
M
S
I
R(j)
W(i)
R(i)
W(i)
W(j)
W(i)
W(j)
R(i)
Protocolos snoopy
Caches de post-escritura
MSI.
W(j)
R(i) S
R(i)
W(i)
W(j)
R(j)
R(i)
R(i)
W(i)
M
E
S
I
W(i)
W(j)
R(j) S
W(i)
Protocolos snoopy
Caches de post-escritura
MESI.
Arquitectura e Ingeniería de Computadores
Protocolos basados en directorios
Multiprocesadores con red de interconexión.
Dificultades de
broadcast
y su escalabilidad.
Directorio: guarda la información relativa al estado del bloque
de cache.
Directorios centralizados y directorios distribuidos.
Fallo de lectura en estado modificado.
Directorio
P1
Cache
Bloque
Mem.
Directorio
P2
Cache
Bloque
Mem.
P3
Cache
Bloque
Protocolos basados en directorios
1
2
3
4
Arquitectura e Ingeniería de Computadores
Fallo de escritura en estado compartido.
Directorio
P1
Cache
Bloque
Mem.
Directorio
P2
Cache
Bloque
Mem.
Directorio
P3
Cache
Bloque
Mem.
Directorio
P4
Cache
Bloque
Mem.
Protocolos basados en directorios
4
4
3 3
1
bloque
1
0
1
0
Directorio
P
Cache
Bloque
Mem.
0
Estructura del directorio (directorios completos)
Arquitectura e Ingeniería de Computadores
Estructura del directorio (directorios limitados)
bloque
Directorio
P
Cache
Bloque
Mem.
0
I1
I2
In
Dirty
log
2
P
Estructura del directorio (directorios encadenados)
bloque
Directorio
P
Cache
Bloque
Mem.
0
P
Dirty
log
2
P
P
Cache
Bloque
P
Cache
Bloque
P
Cache
Bloque
FC
FC
FC