Diapositivas: Sistemas Distribuidos

Download Report

Transcript Diapositivas: Sistemas Distribuidos

Sistemas Distribuidos
y Paralelos
Contenido







Arquitectura de un sistema distribuido
Arquitectura de un sistema paralelo
Topologías de interconexión en sistemas
distribuidos
Topologías de interconexión en sistemas paralelos
Comparación entre sistemas distribuidos y paralelos
Especificación de procesos y tareas
Condiciones de consistencia
Arquitectura de un sistema
distribuido

Sistema distribuido:

Colección de computadoras
separadas físicamente y
conectadas entre sí por una
red de comunicaciones
distribuida; cada máquina
posee sus componentes de
hardware y software que el
usuario percibe como un solo
sistema. [Wikipedia].
Arquitectura de un sistema distribuido
… (2)

¿Qué elementos conforman un sistema
distribuido?





Programas
Procesos
Datos
Red de computadoras
Protocolo de comunicación
Arquitectura de un sistema distribuido
… (3)

¿Cómo interaccionan entre sí los elementos
del sistema?




Cúmulos (Clusters)
Cliente/Servidor
Mallas (Grids)
Igual a igual (peer-to-peer)
Arquitectura de un sistema distribuido
… (4)

Arquitectura típica de un cluster [SO Stallings]:
 Conexión de las computadoras a través de una red de alta
velocidad o conmutador Hw.
 Capacidad de c/computadora de operar independientemente.
 En cada computadora existe un Middleware que permite la
operación del cluster.
Aplicaciones paralelas
Aplicaciones secuenciales
Entorno de programación paralela
Middleware del cluster
(Imagen del sistema e infraestructura de disponibilidad)
PC/Estación de trabajo
PC/Estación de trabajo
PC/Estación de trabajo
PC/Estación de trabajo
PC/Estación de trabajo
Sw comunicaciones
Sw comunicaciones
Sw comunicaciones
Sw comunicaciones
Sw comunicaciones
Hw interfaz de red
Hw interfaz de red
Hw interfaz de red
Hw interfaz de red
Hw interfaz de red
Arquitectura de un sistema distribuido
… (5)

Arquitectura genérica Cliente/Servidor [SO Stallings]

Cliente


Servidor


Solicita un servicio de acceso a datos, recursos, o realizar operaciones en
una máquina diferente.
Administra datos o cualquier recurso para hacerlos disponibles a otras
máquinas.
Típicamente el cliente hace una petición y recibe una respuesta, por otro
lado, el servidor atiende una petición y envía una respuesta.
Estación de trabajo cliente
Servicio de
presentación
Lógica de la aplicación
(parte de cliente)
Software de
Comunicaciones
Sistema
Operativo cliente
Plataforma de hardware
Servidor
Petición
Lógica de la aplicación
(parte de servidor)
Respuesta
Interacción
del protocolo
Software de
Comunicaciones
Sistema
Operativo servidor
Plataforma de hardware
Arquitectura genérica cliente/servidor
Arquitectura de un sistema distribuido
… (6)

Mallas (Grids)

Se puede definir como un conjunto de recursos hardware y
software distribuidos por Internet que proporcionan
servicios accesibles por medio de protocolos e interfases
abiertos.
Arquitectura de un sistema distribuido
… (7)

Igual a Igual (peer to peer)

En una arquitectura pura no hay clientes ni servidores fijos,
sino una serie de nodos que se comportan
simultáneamente como clientes y como servidores
respecto a los demás nodos de la red.
Arquitectura de un sistema
paralelo


Un sistema paralelo debe ser capaz de
ejecutar varias instrucciones
simultáneamente.
Objetivo

Conseguir la máxima cantidad de cómputo en el
menor tiempo posible.
Arquitectura de un sistema paralelo…
(2)

Niveles en la plataforma de hardware [A. Calderón]
Arquitectura de un sistema paralelo…
(3)

Taxonomía de Flynn
 Es la forma más común de clasificar a los sistemas según sus
capacidades de procesamiento.
 Tipos de sistemas paralelos:

SISD



SIMD



Una secuencia de instrucción y múltiples secuencias de datos
MMX, SSE, …
MISD



Una secuencia de instrucciones y una secuencia de datos.
Monoprocesadores
Múltiples secuencias de instrucciones y una secuencia de datos
No se utiliza
MIMD



Múltiples secuencias de instrucciones y múltiples secuencias de datos
Procesadores multinúcleo
Clusters
Arquitectura de un sistema paralelo…
(4)

Taxonomía de Flynn …
Arquitectura de un sistema paralelo…
(5)

Taxonomía de las arquitecturas paralelas
Organización
SISD
SIMD
MISD
MIMD
Una secuencia de
instrucciones, una
secuencia de datos
Una secuencia de
instrucción, múltiples
secuencias de datos
Múltiples secuencias
De instrucciones, una
secuencias de datos
Múltiples secuencias de
instrucciones, múltiples
secuencias de datos
Monoprocesadores
Procesadores
Vectoriales
Procesadores
Matriciales
Memoria compartida
Memoria distribuida
(fuertemente acoplada)
(débilmente acoplada)
Multiprocesador
Simétrico
(SMP)
Clusters
Acceso no
Uniforme a memoria
(NUMA)
Arquitectura de un sistema paralelo…
(6)

Multiprocesadores simétricos (SMP)






Dos o más procesadores similares de capacidades comparables
Los procesadores comparten la memoria con un tiempo de acceso ~ igual
Todos los procesadores comparten los dispositivos de E/S
Están interconectados por un bus
Todos los procesadores pueden desempeñar las mismas funciones
El sistema está controlado por un sistema operativo integrado
Procesador
Procesador
Cache L1
Cache L1
Cache L2
Cache L2
Memoria
Principal
...
Procesador
Cache L1
Cache L2
Adaptador
de E/S
Adaptador
de E/S
Arquitectura de un sistema paralelo…
(7)

Comparación entre arquitecturas con uno y múltiples núcleos [Intel-PRESS]
Arquitectura de un sistema paralelo…
(8)

Acceso no uniforme a memoria (NUMA)

UMA




NUMA



Acceso uniforme a memoria
Todos los procesadores pueden acceder a toda la memoria principal.
El tiempo de acceso es el mismo para todos los procesadores.
Todos los procesadores pueden acceder a toda la memoria principal.
El tiempo de acceso depende de la región a la que se acceda.
CC-NUMA


Cada nodo del sistema incluye cierta cantidad de memoria principal
Desde el punto de vista de los procesadores existe un único espacio direccionable para todo el sistema
Topologías de interconexión
en sistemas distribuidos


Topología
 Estructura de interconexión física de la red de computadoras
Topologías de red
 Redes de interconexión estática




Las redes estáticas emplean enlaces directos fijos entre los nodos.
La topología se establece cuando se instala el sistema.
Se utilizan con eficiencia cuando puede predecirse el tipo de tráfico.
Redes de interconexión dinámica



La topología puede cambiar durante el curso de la ejecución
Facilitan la escalabilidad de la red
Requieren de árbitros de bus, conmutadores (swithc).
Topologías de interconexión en
sistemas distribuidos … (2)

Tipos redes de interconexión estáticas
0
0
7
0
1
2
3
5
0
1
1
5
6
1
2
Formación lineal
2
4
Malla
5
3
2
4
3
4
3
Anillo
Anillo cordal de grado 3
Totalmente conectada
Cubo-3
Árbol binario
Estrella
Topologías de interconexión en
sistemas distribuidos … (3)

Redes de interconexión dinámica
1
1
1
2
2
2
3
3
…
…
N
1000
1
2
1000 x 100
100 x 1000
…
…
1000
3 … N
Conmutador de matriz cuadrada
(Monoetapa)
3
Dos conmutadores de matriz cuadrada
1000 x 100 y 100 x 1000 implementando
uno de 1000 x 1000
(Multietapa)
Topologías de interconexión
en sistemas paralelos

Buses


Conjunto de líneas que permiten comunicar
selectivamente cierto número de componentes de acuerdo
a ciertas normas de conexión.
Solo se permite una transmisión al mismo tiempo
 Ante peticiones simultáneas debe haber un árbitro de bus
 Se trata de buses de tiempo compartido
Procesador
Memoria
Principal
Cache L1
...
Procesador
Cache L1
E/S
Cache L2
Cache L2
BUS
Estructura de BUS único
Topologías de interconexión en
sistemas paralelos … (2)

Estructura de bus jerarquizado

Puede establecer una comunicación en su nivel independiente de y
simultánea a los demás.
Procesador
Cache L1
Memoria
Principal
...
Procesador
Cache L1
E/S
Cache L2
Cache L2
BUS Local
Interfaz de Bus
Bus Principal
Interfaz de Bus
BUS Local
Procesador
Memoria
Principal
Cache L1
Cache L2
...
Procesador
Cache L1
Cache L2
E/S
Topologías de interconexión en
sistemas paralelos … (3)

Memoria compartida
Topologías de interconexión en
sistemas paralelos … (3)

Memoria compartida …
Comparación entre sistemas
distribuidos y paralelos

Tienen propiedades que los diferencian


Sistemas Paralelos
 Dividen una aplicación en tareas que son ejecutadas al
mismo tiempo.
 Los programas se ejecutan en arquitecturas homogéneas
Sistemas distribuidos
 Dividen una aplicación en tareas que son ejecutadas en
diferentes ubicaciones utilizando diferentes recursos
 A menudo es un sistema heterogéneo
 No se tiene una memoria compartida a nivel de hardware
Comparación entre sistemas
distribuidos y paralelos … (2)

Tienen varias características en común






Múltiples procesadores
Los procesadores están interconectados de alguna forma
(generalmente por una red)
Múltiples procesos están en progreso y cooperan unos con
otros
El problema es dividido en partes a ejecutar en un
procesador diferente
Comienzan a utilizar las mismas arquitecturas (al menos
en concepto)
Muchos aspectos del paralelismo y la distribución son
comunes
Comparación entre sistemas
distribuidos y paralelos … (3)
Sistemas
Paralelos
Sistemas
Distribuidos
Sistemas Distribuidos y Paralelos
Comparación entre sistemas
distribuidos y paralelos … (4)

Las dos eras de la computación
Comparación entre sistemas
distribuidos y paralelos … (5)

Tipos de sistemas
Comparación entre sistemas
distribuidos y paralelos … (6)

Sistemas distribuidos v.s. paralelos - Memoria
MIMD
Sistemas
Distribuidos y
Paralelos
Memoria Compartida
Memoria Distribuida (privada)
Multiprocesador
Multicomputador
Comparación entre sistemas
distribuidos y paralelos … (7)
Especificación de procesos y
tareas

Niveles de paralelismo

La granularidad de los trozos de código pueden definir el
nivel de paralelismo.
Tamaño
(Granularidad)
Elemento de código
Paralelizado por
Grande
Programa dividido en tareas
pesadas
Programador
Mediano
Funciones concurrentes y/o
paralelas
Programador
Fino
Bloques y/o ciclos paralelos
Compilador
Paralelo
Muy fino
Instrucciones paralelas
Procesador SMP
Especificación de procesos y
tareas … (2)

Niveles de paralelismo …
Mensajes
Mensajes
Tarea i-1
…
func1()
{
…
}
a[0]=…
b[0]=…
paddusb
Tarea i
…
Tarea i+1
Granularidad
Grande
(Nivel de tareas)
…
func2()
{
…
}
func3()
{
…
}
Granularidad
Mediana
(Nivel de control)
a[1]=…
b[1]=…
a[2]=…
b[2]=…
Granularidad
Fina
(Nivel de datos)
jmp
load
Granularidad
Muy fina
(Múltiples cuestiones)
Especificación de procesos y
tareas … (3)

La especificación de un algoritmo paralelo no trivial
puede incluir algunos de los siguientes aspectos





Identificar que porciones de trabajo pueden realizarse de
forma simultánea (tareas)
Asignar cada tarea a uno de los procesos que se ejecutan
en paralelo
Distribuir los datos de entrada, intermedios y de salida
asociados al programa
Gestionar el acceso a los datos compartidos por varios
procesadores o nodos
Sincronizar a los procesos en distintas fases de su
ejecución paralela
Especificación de procesos y
tareas … (4)

Descomposición de tareas




Es la división de una computación secuencial en porciones
o tareas que pueden ejecutarse simultáneamente
Un problema dado puede dar lugar a descomposiciones
diferentes
El objetivo es obtener una solución que permita reducir el
tiempo de resolución del problema completo
Técnicas de descomposición más comunes [P. Guillen]



Descomposición del dominio
Descomposición funcional
Una combinación de las dos anteriores
Especificación de procesos y
tareas … (5)

Descomposición del dominio

Cada tarea paralela trabaja en una porción de los datos
Existen diferentes maneras de particionar los datos
1D
2D
Especificación de procesos y
tareas … (6)

Descomposición funcional


El problema es descompuesto de acuerdo al trabajo que
debe ser hecho.
Cada tarea ejecuta una porción del trabajo
Especificación de procesos y
tareas … (7)

Balanceo de carga



Se refiere a la distribución de las tareas, de una
manera tal, que se asegura más eficientemente la
ejecución en paralelo
Si las tareas no están distribuidas de manera
balanceada, se podría estar esperando por la
culminación de una tarea, mientras las otras ya
han finalizado.
El desempeño puede ser incrementado si el
trabajo puede ser uniformemente distribuido
Condiciones de consistencia

La consistencia es una necesidad imperativa,
pues sin ella, simplemente es que el sistema no
funciona.
Sistemas
Centralizados
Sistemas
Distribuidos
Puede perderse consistencia ante acceso
a datos concurrente.
Solución: mecanismos de exclusión mutua
Debe tener un único estado global en todos
los equipos que lo componen, es decir,
Consistencia en:
- Tablas del sistema
- La hora actual
- Datos compartidos
- Cache