Computación Cluster y Grid

Anuncio
Computación Cluster y Grid
Computación Cluster y Grid
Gestión de Procesos
1
Gestión de Procesos
Conceptos
C
t y taxonomías:
t
í
Trabajos
T b j y sistemas
i t
paralelos
2. Planificación
Pl ifi
ió estática:
ái
1.
‰ Planificación de tareas dependientes
‰ Planificación
Pl ifi
ió d
de tareas paralelas
l l
‰ Planificación de múltiples tareas
3.
Planificación dinámica:
‰ Equilibrado de carga
‰ Migración de procesos
‰ Migración de datos
‰ Equilibrado
E ilib d d
de conexiones
i
2
Computación Cluster y Grid
Escenario de Partida: Términos
y Trabajos:
T b j
C j t d
Conjuntos
de ttareas ((procesos o hil
hilos))
que demandan: (recursos x tiempo)
y Recursos:
R
D t
Datos,
dispositivos,
di
iti
CPU u otros
t
requisitos
i it
(finitos) necesarios para la realización de trabajos.
y Tiempo: Periodo durante el cual los recursos están
asignados (de forma exclusiva o no) a un determinado
trabajo.
j
y Relación entre las tareas: Las tareas se deben
ejecutar siguiendo unas restricciones en relación a los
datos que generan o necesitan (dependientes y
concurrentes)
y Planificación: Asignación de trabajos a los nodos
de proceso correspondientes. Puede implicar
revisar,
i
auditar
dit y corregir
i esa asignación.
i
ió
3
Computación Cluster y Grid
Escenario de Partida
Recursos demandados
Nodos
(Procesadores)
Tareas
Trabajos
OBJETIVO
A i
Asignación
ió dde llos trabajos
b j dde llos usuarios
i a llos
distintos procesadores, con el objetivo de mejorar
prestaciones frente a la solución tradicional
4
Computación Cluster y Grid
Características de un Sistema Distribuido
y Sistemas
Si t
con memoria
i compartida
tid
y Recursos de un proceso accesibles desde todos los
p
procesadores
y Mapa de memoria
y Recursos internos del SO (ficheros/dispositivos abiertos, puertos, etc.)
y Reparto/equilibrio
Reparto/eq ilibrio de carga (load sharing/balancing) automático
a tomático
y Si el procesador queda libre puede ejecutar cualquier proceso listo
y Beneficios del reparto
p
de carga:
g
y Mejora uso de recursos y rendimiento en el sistema
y Aplicación paralela usa automáticamente procesadores disponibles
y Sistemas
Si t
distribuidos
di t ib id
y Proceso ligado a procesador durante toda su vida
y Recursos de un proceso accesibles sólo desde procesador local
y No sólo mapa de memoria; También recursos internos del SO
y Reparto de carga requiere migración de procesos
5
Computación Cluster y Grid
Escenario de Partida: Trabajos
¿Qué
Q é se tiene
ti
que ejecutar?
j
t ?
Tareas en las que se dividen los trabajos:
y Tareas disjuntas
y Procesos independientes
y Pertenecientes a distintos usuarios
y Tareas cooperantes
y Interaccionan entre sí
y Pertenecientes a una misma aplicación
y Pueden presentar dependencias
y O Pueden requerir ejecución en paralelo
6
Sistemas Operativos Distribuidos
6
Computación Cluster y Grid
Tareas Cooperantes
Dependencias
D
d
i entre
t tareas
t
y Modelizado por medio de un
grafo dirigido acíclico
(DAG).
Tareas
Ejecución
Ej
ió paralela
l l
y Implican un número de
tareas concurrentes
ejecutando
simultáneamente:
y De forma síncrona o
Transferencia de datos
y Ejemplo: Workflow
asíncrona.
y En base a una topología de
conexión.
y Siguiendo un modelo
maestro/esclavo
t /
l
o
distribuido.
y Con unas tasas de
comunicación y un
intercambio de mensajes.
y Ejemplo: Código MPI
7
Sistemas Operativos Distribuidos
7
Computación Cluster y Grid
Escenario de Partida: Objetivos
¿Qué
Q é “mejoras
“ j
d
de prestaciones”
t i
” se espera conseguir?
i?
Tipología de sistemas:
y Sistemas de alta disponibilidad
y HAS: High Availability Systems
y Que el servicio siempre esté operativo
y Tolerancia a fallos
y Sistemas de alto rendimiento
y HPC: High Performance Computing
y Que se alcance una potencia de cómputo mayor
y Ejecución de trabajos pesados en menor tiempo
y Sistemas de alto aprovechamiento
y HTS: High Troughput Systems
y Que el número de tareas servidas sea el máximo posible
y Maximizar el uso de los recursos o servir a más clientes (puede
no ser lo mismo).
8
Sistemas Operativos Distribuidos
8
Computación Cluster y Grid
Sistemas de Cómputo
y Dependen
D
d d
de uso previsto
i t d
dell sistema:
i t
y Máquinas autónomas de usuarios independientes
y Usuario
U
i cede
d uso d
de su máquina
á i pero sólo
ól cuando
d está
tá
desocupada
y ¿
¿Qué ocurre cuando deja
j de estarlo?
y Migrar procesos externos a otros nodos inactivos
y Continuar ejecutando procesos externos con prioridad baja
yS
Sistema dedicado sólo
ó a ejecutar trabajos paralelos
y Se puede hacer una estrategia de asignación a priori
y O ajustar el comportamiento del sistema dinámicamente
y Se intenta optimizar tiempo de ejecución de la aplicación o el
aprovechamiento de los recursos
y Sistema distribuido general (múltiples usuarios y
aplicaciones)
y Se
S intenta
i t t lograr
l
un reparto
t de
d carga adecuado
d
d
9
Sistemas Operativos Distribuidos
9
Computación Cluster y Grid
Tipología de Clusters
y High
Hi h Performance
P f
Clusters
Cl t
y Beowulf; programas paralelos; MPI; dedicación a un problema
y High Availability Clusters
y ServiceGuard, Lifekeeper, Failsafe, heartbeat
y High Throughput Clusters
y Workload/resource managers; equilibrado de carga; instalaciones de
supercomputación
y Según servicio de aplicación:
y Web-Service Clusters
y LVS/Piranha; equilibrado de conexiones TCP; datos replicados
y Storage Clusters
y GFS; sistemas de ficheros paralelos; identica visión de los datos desde
cada nodo
y Database Clusters
y Oracle Parallel Server;
10
Sistemas Operativos Distribuidos
10
Computación Cluster y Grid
Planificación
y La
L planificación
l ifi
ió consiste
i t en ell d
despliegue
li
d
de llas
tareas de un trabajo sobre unos nodos del sistema:
y Atendiendo a las necesidades de recursos
y Atendiendo a las dependencias entre las tareas
y El rendimiento final depende de diversos factores:
y Concurrencia: Uso del mayor número de procesadores
simultáneamente.
y Grado de paralelismo: El grado más fino en el que se
pueda descomponer la tarea.
y Costes de comunicación: Diferentes entre
procesadores dentro del mismo nodo y procesadores
en diferentes nodos.
y Recursos compartidos: Uso de recursos (como la
memoria) comunes para varios procesadores dentro
del mismo nodo
nodo.
11
Computación Cluster y Grid
Planificación
y Dedicación
D di
ió d
de llos procesadores:
d
y Exclusiva: Asignación de una tarea por procesador.
y Tiempo compartido: En tareas de cómputo masivo con
E/S reducida afecta dramáticamente en el rendimiento.
Habitualmente no se hace.
y La planificación de un trabajo puede hacerse de dos
formas:
y Planificación
Pl ifi
ió estática:
táti
I i i l
Inicialmente
t se d
determina
t
i
dónde y cuándo se va a ejecutar las tareas asociadas
a un determinado trabajo. Se determina antes de que
el trabajo entre en máquina.
y Planificación dinámica: Una vez desplegado un
t b j yd
trabajo,
de acuerdo
d all comportamiento
t i t d
dell sistema,
i t
se puede revisar este despliegue inicial. Considera
que el trabajo
q
j yya está en ejecución
j
en la máquina.
q
12
Computación Cluster y Grid
Gestión de Procesos
Planificación Estática
13
Computación Cluster y Grid
Planificación Estática
y Generalmente
G
l
t se aplica
li antes
t d
de permitir
iti lla
ejecución del trabajo en el sistema.
y El planificador (a menudo llamado resource
manager) selecciona un trabajo de la cola (según
política)) y si hay
p
y recursos disponibles
p
lo p
pone en
ejecución, si no espera.
Cola de Trabajos
Planificador
Recursos?
j
Trabajos
14
no
espera
p
síí
Sistema
Computación Cluster y Grid
Descripción de los Trabajos
y Para
P
poder
d ttomar llas d
decisiones
i i
correspondientes
di t a
la política del planificador, éste debe disponer de
información sobre los trabajos:
Número de tareas (ejecutables correspondientes)
Prioridad
Relación entre ellas (DAG)
Estimación de consumo de recursos (procesadores,
memoria,
i di
disco))
y Estimación del tiempo de ejecución (por tarea)
y Otros parámetros de ejecución
y Restricciones aplicables
y
y
y
y
y Estas definiciones se incluyen en un fichero de
descripción del trabajo, cuyo formato depende del
planificador correspondiente.
15
Computación Cluster y Grid
Planificación de Tareas Dependientes
y Considera
C
id
llos siguientes
i i t aspectos:
t
y Duración (estimada) de cada tarea.
y Volumen
V l
d
de d
datos
t ttransmitido
itid all fifinalizar
li
lla ttarea ((e.g.
fichero)
y Precedencia entre tareas (una tarea requiere la
finalización previa de otras).
y Restricciones debidas a la necesidad de recursos
especiales.
Una opción consiste en transformar
2
2
11
1
1
2
7
2
1
3
4
16
1
1
todos los datos a las mismas unidades
(tiempo):
ƒ Tiempo de ejecución (tareas)
ƒ Tiempo de transmisión (datos)
3
La Heterogeneidad complica estas
4
5
estimación:
ƒ Ejecución dependiente de
Representado por medio de un grafo acíclico dirigido procesador
(DAG)
ƒ Comunicación dependiente de
conexión
Computación Cluster y Grid
Planificación de Tareas Dependientes
y Planificación
Pl ifi
ió consiste
i t en lla asignación
i
ió d
de ttareas a
procesadores en un instante determinado de
tiempo:
y Para un solo trabajo existen heurísticas eficientes:
buscar camino crítico (camino más largo en grafo) y
asignar tareas implicadas al mismo procesador.
y Algoritmos con complejidad polinomial cuando sólo
hay dos procesadores.
y Es un p
problema NP-completo
p
con N trabajos.
j
y El modelo teórico se denomina multiprocessor
scheduling.
17
Computación Cluster y Grid
Ejemplo de Tareas Dependientes
10
10
1
2
1
1
20
1
3
4
1
5
0
2
20
18
N2
1
10
Planificador
3
1
4
30
5
36
N1
N1
N2
5
El tiempo de comunicación entre
procesos depende de su despliegue en
el mismo nodo:
ƒ Tiempo ~00 si están en el mismo nodo
ƒ Tiempo n si están en diferentes
nodos
Computación Cluster y Grid
Algoritmos de Clustering
y Para
P
llos casos generales
l se aplican
li
algoritmos
l it
d
de
clustering que consisten en:
y Agrupar
A
llas ttareas en grupos (clusters).
( l t )
y Asignar cada cluster a un procesador.
y La asignación óptima es NP
NP-completa
completa
y Este modelo es aplicable a un solo trabajo o a varios
en paralelo.
paralelo
y Los clusters se pueden construir con:
y Métodos lineales
y Métodos no-lineales
y Búsqueda heurística/estocástica
19
Computación Cluster y Grid
Planificación con Clustering
A
2
2
1
C
2
B 4
3
3
1
D 2
G
3 E 2
F
2
1
5
3
1
3
2
I
20
1
H
2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
A
B
C
D
E
G
F
H
I
Computación Cluster y Grid
Uso de la Replicación
A
2
2
1
C
2
B 4
3
3
1
D 2
G
1
3 E 2
F
2
1
5
2
3
1
3
H
2
I
Algunas tareas se ejecutan en varios
nodos para ahorrar en la comunicación
21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
A
B
C1
C2
D
E
G
F
H
I
Computación Cluster y Grid
Migraciones con Procesos Dependientes
y El uso d
de estrategias
t t i migratorias
i t i permite
it mejorar
j
ell
aprovechamiento.
y Se
S pueden
d d
definir
fi i en lla planificación
l ifi
ió estática.
táti
y Lo más habitual es que formen parte de las estrategias
dinámicas.
dinámicas
0
N1
1
2
N2
2
0
N2
2
Con migración
1
2
3
N1
3
2
3
4
22
Computación Cluster y Grid
Planificación de Tareas Paralelas
y Considera
C
id
llos siguientes
i i t aspectos:
t
y Las tareas requieren ejecutarse en paralelo
y Intercambian
I t
bi mensajes
j a llo llargo d
de lla ejecución.
j
ió
y Consumo de recursos locales (memoria o E/S) de
cada tarea
tarea.
Modelo Centralizado (Maestro/Esclavo)
M
S1
S2
S3
S4
S5
Hipercubo
Anillo
Modelo distribuido
23
S6
Diferentes parámetros de comunicación:
• Tasas de comunicación: Frecuencia, volumen
de datos.
• Topología de conexión: ¿Cómo intercambian
l mensajes?
los
j ?
• Modelo de comunicación: Síncrono (las tareas
se bloquea a la espera de datos) o Asíncrono.
Restricciones:
• La propia topología física de la red de
interconexión
• Prestaciones
P
i
d
de la
l red.
d
Computación Cluster y Grid
Rendimiento de la Planificación
y El rendimiento
di i t d
dell esquema d
de planificación
l ifi
ió
depende:
y Condiciones
C di i
d
de bl
bloqueo ((equilibrado
ilib d d
de carga))
y Estado del sistema
y Eficiencia de las com
comunicaciones:
nicaciones latencia y ancho de
banda
Envio no
bloqueante
Recepción bloqueante
Barrera de sincronización
Recepción no bloqueante
24
Envio bloqueante
Ejecución
Bloqueado
Ocioso
Computación Cluster y Grid
Tareas Paralelas: No-regulares
y En
E algunos
l
casos llas ttopologías
l í d
de conexión
ió no son
regulares:
y Modelado como grafo no dirigido donde:
y Nodo representa un proceso con necesidades de CPU
y memoria
y Arcos incluye etiqueta que indica cantidad de datos
que intercambian nodos implicados (tasa de
comunicación)
y El problema en su forma general es NP-completo
y En el caso general se utilizan heurísticas:
y P. ej. corte mínimo: Para P procesadores buscar P-1
cortes tal q
que se minimice el flujo
j entre cada p
partición
y Resultado: Cada partición (procesador) engloba a un
conjunto de procesos “fuertemente acoplados”
y No
N ttan sencillo
ill en llos modelos
d l asíncronos
í
25
Computación Cluster y Grid
Tareas Paralelas: No-regulares
N1
N2
N3
N1
3
2
3
3
2
2 1 8
5
6
4
3
4
2
4
1
5
2
Tráfico entre nodos:
13+17=30
N2
N3
2
3
2 1 8
5
6
4
3
4
4
1
5
2
Tráfico entre nodos:
13+15=28
Tanenbaum.“Sistemas Operativos Distribuidos” © Prentice Hall 1996
26
Computación Cluster y Grid
Planificación de Múltiples Trabajos
y Cuando
C
d se d
deben
b planificar
l ifi
varios
i ttrabajos
b j ell
planificador debe:
y Seleccionar
S l
i
ell siguiente
i i t ttrabajo
b j a mandar
d a máquina.
á i
y Determinar si hay recursos (procesadores y de otro
tipo) para poder lanzarlo.
lanzarlo
y De no ser así, esperar hasta que se liberen recursos.
Cola de Trabajos
Planificador
Recursos?
j
Trabajos
27
no
espera
p
síí
Sistema
Computación Cluster y Grid
Planificación de Múltiples Trabajos
y ¿Cómo
Có
se selecciona
l
i
ell siguiente
i i t ttrabajo
b j a iintentar
t t ejecutar?:
j
t ?
y Política FCFS (first-come-first-serve): Se respeta el orden de
remisión de trabajos.
j
y Política SJF (shortest-job-first): El trabajo más pequeño en
primer lugar, medido en:
y Recursos,
Recursos número de procesadores
procesadores, o
y Tiempo solicitado (estimación del usuario).
y Política LJF (longest-job-first): Ídem pero en el caso inverso.
y Basadas en prioridades: Administrativamente se define unos
criterios de prioridad, que pueden contemplar:
y Facturación del coste de recursos
recursos.
y Número de trabajos enviados.
y Deadlines de finalización de trabajos. (EDF – Earliest-deadline-first)
28
Computación Cluster y Grid
Backfilling
y Backfilling
B kfilli es una
modificación aplicable a
cualquiera de las políticas
anteriores:
y Si el trabajo seleccionado por
la política no tiene recursos
para entrar entonces,,
p
y Se busca otro proceso en la
cola que demande menos
recursos y pueda entrar.
y Permite aprovechar mejor el
sistema
i t
29
Se buscan trabajos que demanden
menos procesadores
Planificador
Recursos?
sí
no
Backfilling
Computación Cluster y Grid
Backfilling con Reservas
y Las
L reservas consisten
i t en:
y Determinar cuándo se podría
ejecutar la tarea inicialmente
seleccionada, en base a las
estimaciones de tiempos
(deadline)
y Se dejan
j entrar trabajos
j q
que
demandan menos recursos
(backfilling) siempre y cuando
fi li
finalicen
antes
t d
dell deadline.
d dli
y Aumenta el aprovechamiento
del sistema,
sistema pero no retrasa
indefinidamente a los trabajos
grandes.
g
30
La técnica de Backfilling puede
hacer que trabajos que demanden
muchos recursos nunca se
ejecuten
Planificador
Recursos?
sí
no
Backfilling
Computación Cluster y Grid
Gestión de Procesos
Planificación Dinámica
31
Computación Cluster y Grid
Planificación Dinámica
y La
L planificación
l ifi
ió estática
táti d
decide
id sii un proceso se
ejecuta en el sistema o no, pero una vez lanzado no
se realiza seguimiento de él
él.
y La planificación dinámica:
y Evalúa el estado del sistema y toma acciones
correctivas.
y Resuelve problemas debidos a la paralelización del
problema
bl
(desequilibrio
(d
ilib i entre
t llas ttareas).
)
y Reacciona ante fallos en nodos del sistema (caídas o
falos parciales).
parciales)
y Permite un uso no dedicado o exclusivo del sistema.
y Requiere una monitorización del sistema ((políticas de
gestión de trabajos):
y En la planificación estática se contabilizan los recursos
comprometidos.
32
Computación Cluster y Grid
Load Balancing vs. Load Sharing
y Load
L d Sh
Sharing:
i
y Que el estado de los procesadores no sea diferente
y Un procesador ocioso
y Una tarea esperando a ser servida en otro procesador
Asignación
y Load Balancing:
y Que la carga
g de los p
procesadores sea igual.
g
y La carga varía durante la ejecución de un trabajo
y ¿Cómo se mide la carga?
y Son conceptos muy similares, gran parte de las
estrategias usadas para LS vale para LB
(considerando objetivos relativamente diferentes).
LB tiene unas matizaciones particulares.
33
Computación Cluster y Grid
Medición de la Carga
y ¿Qué
Q é es un nodo
d iinactivo?
ti ?
y Estación de trabajo: “lleva varios minutos sin recibir entrada del
teclado o ratón y no está ejecutando
j
p
procesos interactivos”
y Nodo de proceso: “no ha ejecutado ningún proceso de usuario en
un rango de tiempo”.
y Planifiación
Pl ifi ió estática:
táti
““no se lle h
ha asignado
i
d ninguna
i
ttarea”.
”
y ¿Qué ocurre cuando deja de estar inactivo?
y No hacer nada → El nuevo proceso notará mal rendimiento
rendimiento.
y Migrar el proceso a otro nodo inactivo (costoso)
y Continuar ejecutando el proceso con prioridad baja.
y Si en lugar de considerar el estado (LS) se necesita conocer
la carga (LB) hacen falta métricas específicas.
34
Computación Cluster y Grid
Políticas de Gestión de Trabajos
Toda
T
d la
l gestión
tió d
de ttrabajos
b j se b
basa en una serie
i d
de
decisiones (políticas) que hay que definir para una
serie de casos:
y Política
P líti de
d información:
i f
ió cuándo
á d propagar la
l
información necesaria para la toma de decisiones.
y Política
P líti de
d transferencia:
t
f
i decide
d id cuándo
á d ttransferir.
f i
y Política de selección: decide qué proceso
t
transferir.
f i
y Política de ubicación: decide a qué nodo transferir.
35
Computación Cluster y Grid
Política de Información
C á d se ttransmite
Cuándo
it iinformación
f
ió sobre
b ell nodo:
d
y Bajo demanda: únicamente cuando desea realizar
una transferencia.
transferencia
y Periódicas: se recoge información periódicamente, la
información está disponible en el momento de realizar
la transferencia (puede estar obsoleta).
y Bajo cambio de estado: cada vez que un nodo
cambia de estado.
Ámbito de información:
y Completa: todos los conocen toda la información del
sistema.
y Parcial: cada nodo sólo conoce el estado de parte de
los nodos del sistema.
36
Computación Cluster y Grid
Política de Información
¿Qué
Q é iinformación
f
ió se ttransmite?:
it ?
y La carga del nodoÆ ¿qué es la carga?
Diferentes medidas:
y %CPU en un instante de tiempo
y Número de procesos listos para ejecutar (esperando)
y Números
Nú
d
de ffallos
ll d
de página
á i / swaping
i
y Consideración de varios factores.
y Se pueden considerar casos de nodos
h t
heterogéneos
é
((con dif
diferentes
t capacidades).
id d )
37
Computación Cluster y Grid
Política de Transferencia
y Generalmente,
G
l
t basada
b
d en umbral:
b l
y Si en nodo S carga > T unidades, S emisor de tareas
y Si en nodo
d S carga < T unidades,
id d
S receptor
t de
d tareas
t
y Tipos de transferencias:
y Expulsivas: se pueden transferir tareas ejecutadas
parcialmente.
y Supone: transferir el estado del proceso asociado a la tarea
(migración) o reiniciar su ejecución
ejecución.
y No expulsivas: las tareas ya en ejecución no pueden
ser transferidas.
38
Computación Cluster y Grid
Política de Selección
y Elegir
El i llos procesos d
de ttareas nuevas (t
(transferencia
f
i
no expulsiva).
y Seleccionar
S l
i
llos procesos con un tiempo
i
d
de
transferencia mínimo (poco estado, mínimo uso de
los recursos locales)
locales).
y Seleccionar un proceso si su tiempo de finalización
en un nodo
d remoto
t es menor que ell titiempo d
de
finalización local.
y El tiempo de finalización remoto debe considerar el
tiempo necesario para su migración.
y El tiempo de finalización puede venir indicado en la
descripción del trabajo (estimación del usuario).
y De no ser así,, el sistema debe estimarlo por
p sí mismo.
39
Computación Cluster y Grid
Política de Ubicación
y Muestreo:
M
t
consulta
lt de
d otros
t
nodos
d para encontrar
t
adecuado.
y Alternativas:
y
y
y
y
y
y
Sin muestreo (se manda a uno aleatoriamente).
Muestreo secuencial o paralelo.
Selección aleatoria.
Nodos más próximos.
Enviar un mensaje al resto de nodos (broadcast).
Basada en información recogida anteriormente.
y Tres tipos de políticas:
y Iniciadas por el emisor (Push) → emisor busca
receptores
y Iniciadas por el receptor (Pull) → receptor solicita
procesos
p
y Simétrica → iniciada por el emisor y/o por el receptor.
40
Computación Cluster y Grid
Ejecución Remota de Procesos
y ¿Cómo ejecutar un proceso de forma remota?
y Crear el mismo entorno de trabajo:
y Variables de entorno,
entorno directorio act
actual,
al etc
etc.
y Redirigir ciertas llamadas al sistema a máquina
origen:
g
y P. ej. interacción con el terminal
y Migración (transferencia expulsiva) mucho más
compleja:
l j
y “Congelar” el estado del proceso
y Transferir a máquina destino
y “Descongelar” el estado del proceso
y Numerosos aspectos complejos:
y Redirigir mensajes y señales
y¿
¿Copiar
p espacio
p
de swap
p o servir fallos de p
pág.
g
desde origen?
41
Computación Cluster y Grid
Migración de Procesos
Diferentes
Dif
t modelos
d l d
de migración:
i
ió
y Migración débil:
y Restringida a determinadas aplicaciones (ejecutadas
en máquinas virtuales) o en ciertos momentos.
y Migración
ó ffuerte:
y Realizado a nivel de código nativo y una vez que la
ttarea ha
h iniciado
i i i d su ejecución
j
ió ((en cualquier
l i momento)
t )
y De propósito general: Más flexible y más compleja
y Migración
Mi
ió d
de d
datos:
t
y No se migran procesos sino sólo los datos sobre los
que estaba trabajando.
trabajando
42
Computación Cluster y Grid
Migración: Recursos
La migración
L
i
ió d
de recursos ttambién
bié d
depende
d d
de lla
relación de éstos con las máquinas.
y Unatachment resource. Ejemplo: un fichero de datos
dell programa a migrar.
d
i
y Fastened resource. Son recursos movibles, pero con
un alto coste
coste. Ejemplo: una base de datos
datos, un sitio
web.
y Fixed resource. Están ligados estrechamente a una
máquina y no se pueden mover. Ejemplo:
dispositivos locales
43
Computación Cluster y Grid
Migración: Datos de las Tareas
y Los
L d
datos
t que usa una ttarea también
t bié d
deben
b
migrarse:
y Datos
D t en disco:
di
E
Existencia
i t
i d
de un sistema
i t
d
de fificheros
h
común.
y Datos en memoria: Requiere “congelar”
congelar todos los
datos del proceso correspondiente (páginas de
memoria y valores de registros).
g
) Técnicas de
checkpointing:
y Las páginas de datos del proceso se guardan a disco.
y Se puede ser más selectivo si las regiones que definen el
estado están declaradas de alguna forma específica
((lenguajes/librerías
g j
especiales).
p
)
y Es necesario guardar también los mensajes enviados que
potencialmente no hayan sido entregados.
y Útiles también para casos en los que no hay migración: Fallos
en el sistema.
44
Computación Cluster y Grid
Migración Débil
y La
L migración
i
ió débil se puede
d articular
ti l d
de lla siguiente
i i t fforma:
y Ejecución remota de un nuevo proceso/programa
y En UNIX podría ser en FORK o en EXEC
y Es más eficiente que nuevos procesos se ejecuten en nodo donde se
crearon pero eso no permite reparto de carga
y Hay que transferir cierta información de estado aunque no esté
iniciado
y Argumentos, entorno, ficheros abiertos que recibe el proceso, etc.
y Ciertas librerías pueden permitir al programador establecer
puntos en los cuales el estado del sistema de almacena/recupera
y que
q p
pueden ser usados p
para realizar la migración.
g
y En cualquier caso el código del ejecutable debe ser accesible en
el nodo destino:
y Sistema de ficheros común
común.
45
Computación Cluster y Grid
Migración Débil
E lenguajes
En
l
j ((como JJava):
)
y Existe un mecanismo de serialización que permite
transferir el estado de un objeto en forma de “serie de
bytes”.
y Se porporciona un mecanismo de carga bajo demanda
de las clases de forma remota.
serialización
instancia
A=3
Proceso.class
Nodo 1
46
A=3
Solicitud de clase
Proceso.class
Cargador
dinámico
Nodo 2
Computación Cluster y Grid
Migración Fuerte
y Solución naïve:
y Copiar el mapa de memoria: código, datos, pila, ...
y Crear un nuevo BCP (con toda la información
salvaguardada en el cambio de contexto).
y Hay otros datos (almacenados por el núcleo) que son
necesarios:
i
D
Denominado
i d estado
t d externo
t
d
dell proceso
y Ficheros abiertos
y Señales
S ñ l pendientes
di t
y Sockets
y Semáforos
S áf
y Regiones de memoria compartida
y .....
47
Computación Cluster y Grid
Migración Fuerte
Existen diferentes aproximaciones a posibles
implementaciones:
y A nivel de kernel:
y Versiones modificadas del núcleo
y Dispone de toda la información del proceso
y A nivel de usuario:
y Librerias de checkpointing
y Protocolos para desplazamiento de sockets
y Intercepción de llamadas al sistema
Otros aspectos:
y PID único de sistema
y Credenciales y aspectos de seguridad
48
Computación Cluster y Grid
Migración Fuerte
y Desde espacio de usuario:
y Servicio remoto de solicitud de migración
migración.
y Interceptores de llamadas al sistema.
y Auditoría (reconstruir)
y Redirección
y Tratamiento de fallo de páginas remoto.
Proceso
Original
Intercepción
K
Kernel
l
49
Servicio
Nodo j
Nodo i
Servicio
Proceso
Migrado
Intercepción
K
Kernel
l
Computación Cluster y Grid
Migración Fuerte
y Servicio de solicitud de migración:
1 Interactúa
1.
I t
tú con los
l procesos (vía
( í biblioteca
bibli t
ptrace,
t
por ejemplo).
j
l )
2. Suspende la ejecución del proceso original
3 Obtiene datos del proceso (valores de registros o mapa de
3.
memoria)
4. Crea nuevo proceso destino
5. Modifica valores de los registros
6. Monitoriza, en términos generales, el estado de los procesos
Servicio
Servicio
ptrace
t
Proceso
Original
50
Proceso
Migrado
fork
+
ptrace
Computación Cluster y Grid
Migración Fuerte
y Interceptores de llamadas al sistema:
1 Necesarios
1.
N
i para conocer ell estado
t d externo
t
2. Sobrescribir las funciones asociadas a las llamadas al sistema
3 Despliegue por medio de bibliotecas dinámicas (e
3.
(e.g.,
g
LD_PRELOAD)
4. Se conoce la secuencia de llamadas hechas ((se puede repetir))
5. Se puede redirigir una llamada a otro sitio (vía el servicio).
Servicio
Proceso
Original
open(…)
LD_PRELOAD=foo.so
open( )
open(…)
Intercepción
open(…)
Kernel
51
Computación Cluster y Grid
Migración Fuerte
y Tratamiento de fallo de página remoto:
1. Acceso
A
a páginas
á i
no cargadas
d d
da una señall SEGV
SEGV.
2. El interceptor captura la señal
3. Solicita
S li it lla petición
ti ió remota
t a lla página
á i en ell nodo
d original
i i l
4. Copia la página
Servicio
Proceso
Migrado
SEGV
pág
Intercepción
52
Computación Cluster y Grid
Migración Fuerte
y Se debe intentar que proceso remoto se inicie cuanto antes
y Copiar todo el espacio de direcciones al destino
y Copiar
C i sólo
ól páginas
á i
modificadas
difi d all d
destino;
ti
resto
t se pedirán
di á
como fallos de página desde nodo remoto servidas de swap de
origen
y No copiar nada al destino; las páginas se pedirán como fallos
de página desde el nodo remoto
y servidas de memoria de nodo origen si estaban modificadas
y servidas de swap de nodo origen si no estaban modificadas
y Volcar a swap de nodo origen páginas modificadas y no copiar
nada al destino: todas las páginas se sirven de swap de origen
y Precopia: Copia de páginas
g
mientras ejecuta
j
proceso en origen
g
y Páginas de código (sólo lectura) no hay que pedirlas:
y Se sirven en nodo remoto usando SFD
53
Computación Cluster y Grid
Migración Fuerte
y Migración de conexiones:
y Afecta a las conexiones entrantes y salientes.
y Solución por medio de proxies:
y En realidad todas las direcciones son de un único servidor que
redirige al nodo donde está el proceso en cada momento
momento.
y El problema es que no es escalable.
y Solución a nivel IP:
y Se asigna una dirección IP por proceso del sistema (vía DHCP)
y Paquetes “Gratuitous ARP” para informar de cambio de MAC al
migrar
i
ell proceso.
y El problema es el rango de direcciones disponibles (red privada
virtual).
)
54
Computación Cluster y Grid
Beneficios de la Migración de Procesos
y Mejora
M j
rendimiento
di i t d
dell sistema
i t
por reparto
t d
de carga
y Permite aprovechar proximidad de recursos
y Proceso que usa mucho un recurso: migrarlo al nodo
del mismo
y Puede mejorar algunas aplicaciones cliente/servidor
y Para minimizar transferencias si hay un gran volumen
de datos:
y Servidor envía código en vez de datos (p. ej. applets)
y O cliente envía código a servidor (p. ej. cjto. de accesos a b. de
datos))
y Tolerancia a fallos ante un fallo parcial en un nodo
y Desarrollo de “aplicaciones
p
de red”
y Aplicaciones conscientes de su ejecución en una red
y Solicitan migración de forma explícita
y Ejemplo: Sistemas de agentes móviles
55
Computación Cluster y Grid
Migración de Datos
Usando en aplicaciones de tipo maestro/esclavo.
y Maestro: Distribuye el trabajo entre los trabajadores.
y Esclavo: Trabajador (el mismo código pero con diferentes
datos).
y Representa un algoritmo de distribución de trabajo (en
este
t caso datos)
d t ) que:
y Evite que un trabajador esté parado porque el maestro no
transmite datos
datos.
y No asigne demasiado trabajo a un nodo (tiempo final del
proceso es el del más lento)
y Solución: Asignación de trabajos por bloques (más o
menos p
pequeños).
q
)
56
Computación Cluster y Grid
Migración de Datos
y Mejoras de rendimiento:
y Equilibrado de carga:
y Solución: Definir muchos paquetes de trabajo e ir despachándolos
bajo demanda (finalización del anterior).
y Intentar lanzar rápido los trabajos iniciales:
y Solución: Uso de broadcast en el envío de paquetes inicial.
y Si todos los nodos son homogéneos
g
y realizan el mismo
trabajo finalizarán casi a la vez:
y Plantea un posible problema de saturación del maestro que deriva
en un retraso
t
en despachar
d
h nuevos paquetes
t de
d ttrabajo.
b j
y Solución: Asignación inicial en distintos tamaños.
57
Computación Cluster y Grid
Planificación Dinámica vs. Estática
y Los sistemas pueden usar indistintamente una, otro o
No
o Dinám
mica
Diná
ámica
l d
las
dos.
58
Estática
No Estática
Planificación adaptativa: Se mantiene
un control central sobre los trabajos
lanzados al sistema, pero se dispone de
los mecanismos necesarios ppara
reaccionar a errores en las estimaciones
o reaccionar ante problemas.
Estrategias de equilibrado de carga:
Los trabajos se arrancan libremente en
los nodos del sistema y por detrás un
servicio de equilibrado
q
de carga/estado
g
ajusta la distribución de tareas a los
nodos.
Gestor de recursos (con asignación
batch): Los procesadores se asignan de
forma exclusiva y el gestor de recursos
mantiene información sobre los recursos
comprometidos.
Cluster de máquinas sin planificación
alguna: Que sea lo que Dios quiera…
Computación Cluster y Grid
Ejemplo: OpenMOSIX
Preemptive process migration
De forma transparente, y en cualquier instante se puede migrar un
proceso de usuario
El proceso migrado se divide en dos partes:
y Contexto de sistema (deputy) que no puede ser migrado del nodo original
original.
y Contexto ed usuario (remote) que puede ser migrado
Nodo origen
59
Nodo destino
Computación Cluster y Grid
Ejemplo: OpenMOSIX
Dynamic load balancing
y Se inician los procesos de migración con la intención de equilibrar la
carga de los nodos
y Se ajusta de acuerdo a la variación de carga de los nodos,
características de la ejecución y número y potencia de los nodos
y Intenta en cada momento reducir la diferencia de carga de cada pareja
de nodos
y La
L política
líti es simétrica
i ét i y d
descentralizada
t li d (t
(todos
d llos nodos
d ejecutan
j
t ell
mismo algoritmo)
Memory sharing
y De mayor prioridad.
y Intenta equilibrar el uso de memoria entre los nodos del sistema
y Evita, en la medida de lo posible, hacer swapping.
y La toma de decisiones de qué proceso migrar y donde migrarlo se
evalúa
lú en b
base a lla cantidad
tid d d
de memoria
i di
disponible.
ibl
60
Computación Cluster y Grid
Ejemplo: OpenMOSIX
Probabilistic information dissemination algorithms
y Proporciona a cada nodo (a su algoritmo) suficiente información sobre
los recursos disponibles en otros nodos
nodos. Sin hacer polling.
polling
y Mide la cantidad de recursos disponibles en cada nodo
y La emisión de esta información se hace a intervalos regulares de tiempo
a un subconjunto aleatorio de los nodos.
y En el ejecución de una migración, cada asignación de un proceso
iimplica
li un periodo
i d d
durante
t ell cuall ell nodo
d d
debe
b ejecutarlo
j
t l ((no puede
d
migrarlo de nuevo).
61
Computación Cluster y Grid
Referencias
y BProc: Beowulf Distributed
Process Space
http://bproc.sourceforge.net/
y Scyld Computer
Corporation
• Open MOSIX
htt //
http://openmosix.sourceforge.net/
i
f
t/
• OpenSSI
htt //
http://www.openssi.org/
i /
http://www.scyld.com/
• A Dynamic Load Balancing System for Parallel Cluster
Computing
p g ((1996))
B. J. Overeinder, P. M. A. Sloot, R. N. Heederik. Future Generation
Computer Systems
• Transparent Process Migration: Design Alternatives and the
Sprite
p Implementation
p
((1991))
Fred Douglis, John Ousterhout. Software - Practice and Experience
62
Computación Cluster y Grid
Descargar