sistemas distribuidos y paralelos unidad 1 introducción

39
Sistemas Distribuidos y Paralelos Unidad 1 Introducción

Upload: magdalena-portilla

Post on 27-Jan-2016

243 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

Sistemas Distribuidos y Paralelos

Unidad 1

Introducción

Page 2: 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

Page 3: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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].

Page 4: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

Arquitectura de un sistema distribuido … (2)

¿Qué elementos conforman un sistema distribuido? Programas Procesos Datos Red de computadoras Protocolo de comunicación

Page 5: Sistemas Distribuidos y Paralelos Unidad 1 Introducció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)

Page 6: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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)

Page 7: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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

Page 8: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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.

Page 9: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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.

Page 10: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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.

Page 11: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

Arquitectura de un sistema paralelo… (2)

Niveles en la plataforma de hardware [A. Calderón]

Page 12: Sistemas Distribuidos y Paralelos Unidad 1 Introducció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

Page 13: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

Arquitectura de un sistema paralelo… (4)

Taxonomía de Flynn …

Page 14: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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)

Page 15: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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

Page 16: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

Arquitectura de un sistema paralelo… (7)

Comparación entre arquitecturas con uno y múltiples núcleos [Intel-PRESS]

Page 17: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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

Page 18: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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).

Page 19: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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

Page 20: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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)

Page 21: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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

Page 22: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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

Page 23: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

Topologías de interconexión en sistemas paralelos … (3)

Memoria compartida

Page 24: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

Topologías de interconexión en sistemas paralelos … (3)

Memoria compartida …

Page 25: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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

Page 26: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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

Page 27: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

Comparación entre sistemas distribuidos y paralelos … (3)

Sistemas DistribuidosSistemas

Paralelos

Sistemas Distribuidos y Paralelos

Page 28: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

Comparación entre sistemas distribuidos y paralelos … (4) Las dos eras de la computación

Page 29: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

Comparación entre sistemas distribuidos y paralelos … (5)

Tipos de sistemas

Page 30: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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)

Page 31: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

Comparación entre sistemas distribuidos y paralelos … (7)

Page 32: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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

Page 33: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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)

Page 34: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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

Page 35: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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

Page 36: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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

Page 37: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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

Page 38: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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

Page 39: Sistemas Distribuidos y Paralelos Unidad 1 Introducción

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