Documente Academic
Documente Profesional
Documente Cultură
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
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 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
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
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.
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.
Un sistema paralelo debe ser capaz de ejecutar varias instrucciones simultneamente. Objetivo
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
Taxonoma de Flynn
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)
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
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
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.
La topologa puede cambiar durante el curso de la ejecucin Facilitan la escalabilidad de la red Requieren de rbitros de bus, conmutadores (swithc).
7
0 1 2 3 5 1
Formacin lineal
4 3 2 5 4 3 4 3
Anillo
Totalmente conectada
Malla
Cubo-3
rbol binario
Estrella
1 2 3
1000 x 100
100 x 1000
3 1000
N 1 2 3 N
1000
Dos conmutadores de matriz cuadrada 1000 x 100 y 100 x 1000 implementando uno de 1000 x 1000 (Multietapa)
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
...
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
Memoria compartida
Memoria compartida
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
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
Sistemas Paralelos
Sistemas Distribuidos
Tipos de sistemas
Memoria Compartida
Multiprocesador
Multicomputador
Niveles de paralelismo
Muy fino
Instrucciones paralelas
Procesador SMP
Niveles de paralelismo
Mensajes Tarea i-1 Tarea i Mensajes Tarea i+1 Granularidad Grande (Nivel de tareas)
func1() { }
func2() { }
func3() { }
a[0]= b[0]=
a[1]= b[1]=
a[2]= b[2]=
paddusb
jmp
load
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
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
Descomposicin funcional
El problema es descompuesto de acuerdo al trabajo que debe ser hecho. Cada tarea ejecuta una porcin del trabajo
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