Professional Documents
Culture Documents
1.4.Arquitectura de un Sistema
Distribuido
Contenido
Aplicaciones paralelas
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
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
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 Servidor
presentación
Petición
Lógica de la aplicación Lógica de la aplicación
(parte de cliente) (parte de servidor)
Respuesta
Software de Software de
Comunicaciones Comunicaciones
Interacción
Sistema del protocolo
Sistema
Operativo cliente Operativo servidor
Cache L1
...
Cache L1 Cache L1
Memoria Adaptador
Principal 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
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 0 0
7 1
0 1 2 3 5 1 5 1
6 2
Formación lineal
2 2
4 4
5 3
3 4 3
Anillo Anillo cordal de grado 3 Totalmente conectada
Procesador Procesador
...
Cache L1 Cache L1
Memoria
Principal 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 Procesador
...
Cache L1 Cache L1
Memoria
Principal E/S
Cache L2 Cache L2
BUS Local
Interfaz de Bus
Bus Principal
Interfaz de Bus
BUS Local
Procesador Procesador
Memoria ... E/S
Cache L1 Cache L1
Principal
Cache L2 Cache L2
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
Sistemas
Sistemas Distribuidos
Paralelos
Tamaño
Elemento de código Paralelizado por
(Granularidad)
Programa dividido en tareas
Grande Programador
pesadas
Funciones concurrentes y/o
Mediano Programador
paralelas
Compilador
Fino Bloques y/o ciclos paralelos
Paralelo
Mensajes Mensajes
Granularidad
Tarea i-1 … Tarea i … Tarea i+1 …
Grande
(Nivel de tareas)
Granularidad
a[0]=… a[1]=… a[2]=… Fina
b[0]=… b[1]=… b[2]=… (Nivel de datos)
Granularidad
paddusb jmp load 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