Sie sind auf Seite 1von 39

Sistemas Distribuidos y Paralelos

Unidad 1 Introduccin

Contenido

Arquitectura de un sistema distribuido Arquitectura de un sistema paralelo Topologas de interconexin en sistemas distribuidos Topologas de interconexin en sistemas paralelos Comparacin entre sistemas distribuidos y paralelos Especificacin de procesos y tareas Condiciones de consistencia

Arquitectura de un sistema distribuido

Sistema distribuido:

Coleccin de computadoras separadas fsicamente y conectadas entre s por una red de comunicaciones distribuida; cada mquina 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 comunicacin

Arquitectura de un sistema distribuido (3)

Cmo interaccionan entre s los elementos del sistema?


Cmulos (Clusters) Cliente/Servidor Mallas (Grids) Igual a igual (peer-to-peer)

Arquitectura de un sistema distribuido (4)

Arquitectura tpica de un cluster [SO Stallings]: Conexin de las computadoras a travs 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 operacin del cluster.
Aplicaciones paralelas Aplicaciones secuenciales Entorno de programacin paralela Middleware del cluster (Imagen del sistema e infraestructura de disponibilidad)

PC/Estacin de trabajo

PC/Estacin de trabajo

PC/Estacin de trabajo

PC/Estacin de trabajo

PC/Estacin de trabajo

Sw comunicaciones Hw interfaz de red

Sw comunicaciones Hw interfaz de red

Sw comunicaciones Hw interfaz de red

Sw comunicaciones Hw interfaz de red

Sw comunicaciones Hw interfaz de red

Arquitectura de un sistema distribuido (5)

Arquitectura genrica Cliente/Servidor [SO Stallings]

Cliente

Solicita un servicio de acceso a datos, recursos, o realizar operaciones en una mquina diferente. Administra datos o cualquier recurso para hacerlos disponibles a otras mquinas.

Servidor

Tpicamente el cliente hace una peticin y recibe una respuesta, por otro lado, el servidor atiende una peticin y enva una respuesta.
Estacin de trabajo cliente
Servicio de presentacin Lgica de la aplicacin (parte de cliente) Software de Comunicaciones Sistema Operativo cliente Plataforma de hardware Peticin Lgica de la aplicacin (parte de servidor) Respuesta Interaccin del protocolo Software de Comunicaciones Sistema Operativo servidor Plataforma de hardware

Servidor

Arquitectura genrica 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 simultneamente como clientes y como servidores respecto a los dems nodos de la red.

Arquitectura de un sistema paralelo

Un sistema paralelo debe ser capaz de ejecutar varias instrucciones simultneamente. Objetivo

Conseguir la mxima cantidad de cmputo en el menor tiempo posible.

Arquitectura de un sistema paralelo (2)

Niveles en la plataforma de hardware [A. Caldern]

Arquitectura de un sistema paralelo (3)

Taxonoma de Flynn Es la forma ms comn de clasificar a los sistemas segn sus capacidades de procesamiento. Tipos de sistemas paralelos:

SISD

Una secuencia de instrucciones y una secuencia de datos. Monoprocesadores Una secuencia de instruccin y mltiples secuencias de datos MMX, SSE, Mltiples secuencias de instrucciones y una secuencia de datos No se utiliza

SIMD

MISD

MIMD

Mltiples secuencias de instrucciones y mltiples secuencias de datos Procesadores multincleo Clusters

Arquitectura de un sistema paralelo (4)

Taxonoma de Flynn

Arquitectura de un sistema paralelo (5)

Taxonoma de las arquitecturas paralelas


Organizacin

SISD
Una secuencia de instrucciones, una secuencia de datos

SIMD
Una secuencia de instruccin, mltiples secuencias de datos

MISD
Mltiples secuencias De instrucciones, una secuencias de datos

MIMD
Mltiples secuencias de instrucciones, mltiples secuencias de datos

Monoprocesadores

Procesadores Vectoriales

Procesadores Matriciales

Memoria compartida
(fuertemente acoplada)

Memoria distribuida
(dbilmente acoplada)

Multiprocesador Simtrico (SMP)

Clusters Acceso no Uniforme a memoria (NUMA)

Arquitectura de un sistema paralelo (6)

Multiprocesadores simtricos (SMP)


Dos o ms 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 Estn interconectados por un bus Todos los procesadores pueden desempear las mismas funciones El sistema est controlado por un sistema operativo integrado
Procesador
Cache L1

Procesador
Cache L1

...

Procesador
Cache L1

Cache L2

Cache L2

Cache L2

Memoria Principal

Adaptador de E/S

Adaptador de E/S

Arquitectura de un sistema paralelo (7)

Comparacin entre arquitecturas con uno y mltiples ncleos [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. Todos los procesadores pueden acceder a toda la memoria principal. El tiempo de acceso depende de la regin a la que se acceda. 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

NUMA

CC-NUMA

Topologas de interconexin en sistemas distribuidos

Topologa Estructura de interconexin fsica de la red de computadoras Topologas de red Redes de interconexin esttica

Las redes estticas emplean enlaces directos fijos entre los nodos. La topologa se establece cuando se instala el sistema. Se utilizan con eficiencia cuando puede predecirse el tipo de trfico.

Redes de interconexin dinmica


La topologa puede cambiar durante el curso de la ejecucin Facilitan la escalabilidad de la red Requieren de rbitros de bus, conmutadores (swithc).

Topologas de interconexin en sistemas distribuidos (2)

Tipos redes de interconexin estticas


0 0 0 1 5 6 2 2 1

7
0 1 2 3 5 1

Formacin lineal
4 3 2 5 4 3 4 3

Anillo

Anillo cordal de grado 3

Totalmente conectada

Malla

Cubo-3

rbol binario

Estrella

Topologas de interconexin en sistemas distribuidos (3)

Redes de interconexin dinmica


1 2 3 1 2

1 2 3

1000 x 100

100 x 1000

3 1000

N 1 2 3 N

1000

Conmutador de matriz cuadrada (Monoetapa)

Dos conmutadores de matriz cuadrada 1000 x 100 y 100 x 1000 implementando uno de 1000 x 1000 (Multietapa)

Topologas de interconexin en sistemas paralelos

Buses

Conjunto de lneas que permiten comunicar selectivamente cierto nmero de componentes de acuerdo a ciertas normas de conexin. Solo se permite una transmisin al mismo tiempo Ante peticiones simultneas 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

Topologas de interconexin en sistemas paralelos (2)

Estructura de bus jerarquizado

Puede establecer una comunicacin en su nivel independiente de y simultnea a los dems.


Procesador Memoria Principal
Cache L1

...

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

...

Procesador
Cache L1

E/S

Cache L2

Cache L2

Topologas de interconexin en sistemas paralelos (3)

Memoria compartida

Topologas de interconexin en sistemas paralelos (3)

Memoria compartida

Comparacin entre sistemas distribuidos y paralelos

Tienen propiedades que los diferencian

Sistemas Paralelos Dividen una aplicacin en tareas que son ejecutadas al mismo tiempo. Los programas se ejecutan en arquitecturas homogneas Sistemas distribuidos Dividen una aplicacin en tareas que son ejecutadas en diferentes ubicaciones utilizando diferentes recursos A menudo es un sistema heterogneo No se tiene una memoria compartida a nivel de hardware

Comparacin entre sistemas distribuidos y paralelos (2)

Tienen varias caractersticas en comn


Mltiples procesadores Los procesadores estn interconectados de alguna forma (generalmente por una red) Mltiples procesos estn 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 distribucin son comunes

Comparacin entre sistemas distribuidos y paralelos (3)

Sistemas Paralelos

Sistemas Distribuidos

Sistemas Distribuidos y Paralelos

Comparacin entre sistemas distribuidos y paralelos (4)

Las dos eras de la computacin

Comparacin entre sistemas distribuidos y paralelos (5)

Tipos de sistemas

Comparacin entre sistemas distribuidos y paralelos (6)

Sistemas distribuidos v.s. paralelos - Memoria


MIMD
Sistemas Distribuidos y Paralelos

Memoria Compartida

Memoria Distribuida (privada)

Multiprocesador

Multicomputador

Comparacin entre sistemas distribuidos y paralelos (7)

Especificacin de procesos y tareas

Niveles de paralelismo

La granularidad de los trozos de cdigo pueden definir el nivel de paralelismo.


Tamao (Granularidad) Grande Elemento de cdigo Programa dividido en tareas pesadas Paralelizado por Programador

Mediano
Fino

Funciones concurrentes y/o paralelas


Bloques y/o ciclos paralelos

Programador
Compilador Paralelo

Muy fino

Instrucciones paralelas

Procesador SMP

Especificacin de procesos y tareas (2)

Niveles de paralelismo
Mensajes Tarea i-1 Tarea i Mensajes Tarea i+1 Granularidad Grande (Nivel de tareas)

func1() { }

func2() { }

func3() { }

Granularidad Mediana (Nivel de control)

a[0]= b[0]=

a[1]= b[1]=

a[2]= b[2]=

Granularidad Fina (Nivel de datos)

paddusb

jmp

load

Granularidad Muy fina (Mltiples cuestiones)

Especificacin de procesos y tareas (3)

La especificacin de un algoritmo paralelo no trivial puede incluir algunos de los siguientes aspectos

Identificar que porciones de trabajo pueden realizarse de forma simultnea (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 ejecucin paralela

Especificacin de procesos y tareas (4)

Descomposicin de tareas

Es la divisin de una computacin secuencial en porciones o tareas que pueden ejecutarse simultneamente Un problema dado puede dar lugar a descomposiciones diferentes El objetivo es obtener una solucin que permita reducir el tiempo de resolucin del problema completo Descomposicin del dominio Descomposicin funcional Una combinacin de las dos anteriores

Tcnicas de descomposicin ms comunes [P. Guillen]


Especificacin de procesos y tareas (5)

Descomposicin del dominio

Cada tarea paralela trabaja en una porcin de los datos

Existen diferentes maneras de particionar los datos


1D 2D

Especificacin de procesos y tareas (6)

Descomposicin funcional

El problema es descompuesto de acuerdo al trabajo que debe ser hecho. Cada tarea ejecuta una porcin del trabajo

Especificacin de procesos y tareas (7)

Balanceo de carga

Se refiere a la distribucin de las tareas, de una manera tal, que se asegura ms eficientemente la ejecucin en paralelo Si las tareas no estn distribuidas de manera balanceada, se podra estar esperando por la culminacin de una tarea, mientras las otras ya han finalizado. El desempeo 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 Puede perderse consistencia ante acceso a datos concurrente. Solucin: mecanismos de exclusin 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

Sistemas Distribuidos

Das könnte Ihnen auch gefallen