sistemas distribuidos y paralelos unidad 1 introducción
Post on 27-Jan-2016
259 Views
Preview:
TRANSCRIPT
Sistemas Distribuidos y Paralelos
Unidad 1
Introducción
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.
Hw interfaz de red
Sw comunicaciones
PC/Estación de trabajo
Entorno de programación paralelaAplicaciones secuenciales
Aplicaciones paralelas
Hw interfaz de red
Sw comunicaciones
PC/Estación de trabajo
Hw interfaz de red
Sw comunicaciones
PC/Estación de trabajo
Hw interfaz de red
Sw comunicaciones
PC/Estación de trabajo
Hw interfaz de red
Sw comunicaciones
PC/Estación de trabajo
Middleware del cluster(Imagen del sistema e infraestructura de disponibilidad)
Arquitectura de un sistema distribuido … (5)
Arquitectura genérica Cliente/Servidor [SO Stallings] Cliente
Solicita un servicio de acceso a datos, recursos, o realizar operaciones en una máquina diferente.
Servidor 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.
Servicio de presentación
Lógica de la aplicación(parte de cliente)
Software deComunicaciones
Sistema Operativo cliente
Plataforma de hardware
Estación de trabajo cliente
Lógica de la aplicación(parte de servidor)
Software deComunicaciones
Sistema Operativo servidor
Plataforma de hardware
Servidor
Petición
Respuesta
Interaccióndel protocolo
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 Una secuencia de instrucciones y una secuencia de datos. Monoprocesadores
SIMD Una secuencia de instrucción y múltiples secuencias de datos MMX, SSE, …
MISD 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
SISDUna secuencia deinstrucciones, una
secuencia de datos
Monoprocesadores
SIMDUna secuencia de
instrucción, múltiplessecuencias de datos
ProcesadoresVectoriales
ProcesadoresMatriciales
MISDMúltiples secuenciasDe instrucciones, unasecuencias de datos
MIMDMúltiples secuencias deinstrucciones, múltiples
secuencias de datos
Memoria compartida(fuertemente acoplada)
Memoria distribuida(débilmente acoplada)
ClustersMultiprocesadorSimétrico
(SMP)
Acceso noUniforme 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
Cache L1
Cache L2
Procesador
Cache L1
Cache L2
Procesador
Cache L1
Cache L2
. . .
MemoriaPrincipal
Adaptadorde E/S
Adaptadorde 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
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.
NUMA 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 1 2 3
Formación lineal
0
1
2
3
4
5
Anillo
0
1
2
3
4
5
Anillo cordal de grado 3
6
7
Malla
0
1
2
3
4
5
Totalmente conectada
Cubo-3 Árbol binario Estrella
Topologías de interconexión en sistemas distribuidos … (3)
Redes de interconexión dinámica
1
2
3
…
N
1 2 3 … N
Conmutador de matriz cuadrada(Monoetapa)
1000 x 100
1
2
3
…
1000
100 x 1000…
1
2
3
…
1000
Dos conmutadores de matriz cuadrada1000 x 100 y 100 x 1000 implementandouno 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
Cache L1
Cache L2
Procesador
Cache L1
Cache L2
. . .MemoriaPrincipal E/S
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
Cache L2
Procesador
Cache L1
Cache L2
. . .MemoriaPrincipal E/S
BUS Local
Procesador
Cache L1
Cache L2
Procesador
Cache L1
Cache L2
. . .MemoriaPrincipal
E/S
BUS Local
Bus Principal
Interfaz de Bus
Interfaz de Bus
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 DistribuidosSistemas
Paralelos
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
MIMDSistemas
Distribuidos y Paralelos
Multiprocesador Multicomputador
Memoria Compartida
Memoria Distribuida (privada)
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
GrandePrograma dividido en tareas pesadas
Programador
MedianoFunciones concurrentes y/o paralelas
Programador
Fino Bloques y/o ciclos paralelosCompilador Paralelo
Muy fino Instrucciones paralelas Procesador SMP
Especificación de procesos y tareas … (2) Niveles de paralelismo …
a[0]=…b[0]=…
Mensajes Mensajes
… …Granularidad
Grande(Nivel de tareas)
…
func1(){…}
func2(){…}
func3(){…}
GranularidadMediana
(Nivel de control)
Tarea i-1 Tarea i Tarea i+1
a[1]=…b[1]=…
a[2]=…b[2]=…
GranularidadFina
(Nivel de datos)
paddusb jmp load
GranularidadMuy 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.
SistemasCentralizados
Puede perderse consistencia ante accesoa datos concurrente.Solución: mecanismos de exclusión mutua
SistemasDistribuidos
Debe tener un único estado global en todoslos equipos que lo componen, es decir, Consistencia en:- Tablas del sistema- La hora actual- Datos compartidos- Cache
top related