máster en ciencia y tecnología informática curso 2017-2018 · planificación y distribución de...

117
Diseño de Sistemas Distribuidos Máster en Ciencia y Tecnología Informática Curso 2017-2018 Félix García Carballeira Grupo de Arquitectura de Computadores [email protected] Planificación y distribución de carga en sistema distribuidos

Upload: others

Post on 27-May-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Diseño de Sistemas DistribuidosMáster en Ciencia y Tecnología Informática

Curso 2017-2018

Félix García CarballeiraGrupo de Arquitectura de [email protected]

Planificación y distribución de carga en sistema distribuidos

Planificación y distribución de carga (Scheduling and load balancing)§ Conceptos muy relacionados entre sí§ En ambos casos se parte:

q Un conjunto de procesadores (CE) y unidades de almacenamiento (SE) distribuidos

q Un conjunto aplicaciones (trabajos) con requisitos de CPU y de almacenamiento.§ Trabajos secuenciales§ Trabajos paralelos

•Sistemas Distribuidos (2017-2018) •2

Planificación y distribución de carga

§ El algoritmo de planificación es responsable determinar el orden en el que los trabajos que hay en un sistema se ejecutan en los procesadores

§ El algoritmo de distribución de carga es responsable distribuirlos trabajos según van llegando al sistema.

•Sistemas Distribuidos (2017-2018) •3

Planificación

§ El algoritmo de planificación es responsable determinar el orden en el que los trabajos se ejecutan en los procesadores

§ Un trabajo (job) está compuesto por un conjunto de tareas (tasks)

§ Objetivo: buscar una estrategia que§ Maximice la productividad (throuhgput)§ Minimice el tiempo de respuesta § Maximice el uso de los recursos en global

•Sistemas Distribuidos (2017-2018) •4

Diferentes modelos

§ Un trabajo (job) está compuesto por un conjunto de tareas (tasks)

§ Diferentes modelos:q Trabajos secuenciales (una tarea por trabajo)q Trabajos paralelos (varias tareas por trabajo):

§ Tareas independientes§ Tareas que se comunican entre sí y pueden ejecutar en

paralelo (planificación Gang)§ Trabajo formado por tareas con restricciones de precedencia

(planificación DAG)§ Trabajos con restricciones de tiempo (Real time scheduling)

•Sistemas Distribuidos (2017-2018) •5

Aspectos a considerar en la planificación

§ Coste de las tareas:q ¿Tienen todas el mismo coste computacional?q ¿Se conocen los costes, cuando?

§ Dependencia entre las tareasq ¿Pueden ejecutar en paralelo, en cualquier orden?q ¿Existen dependencias?

§ Localidad:q ¿Es importante que algunas tareas se ejecuten en el mismo

procesador para reducir las comunicaciones?

•Sistemas Distribuidos (2017-2018) •6

Clasificación de los esquemas de planificación

•Sistemas Distribuidos (2017-2018)

•Scheduling

•Local •Global

•Static •Dynamic

•Optimal •Sub-Optimal

•Approximate •Heuristic

Phisic nom-.Distrib. •Phisically Distrib.

•Cooperative •Non-Cooperative

•Optimal •Sub-Optimal

•Approximate •Heuristic

•7

Clasificación

§ Planificación local: planificación en un único procesador§ Planificación global: planificación en varios procesadores

•Sistemas Distribuidos (2017-2018)

•Scheduling

•Local •Global

•8

Planificación global

§ Planificación estática: decisión tomada antes de la ejecución§ Planificación dinámica: planificación en tiempo de ejecución

(adecuada para ejecución no determinista)

•Sistemas Distribuidos (2017-2018)

•Scheduling

•Local •Global

•Static •Dynamic

•9

Planificación estática

§ Solución óptima: Problema NP-Completo§ Soluciones sub-óptimas: basadas en heurísticas o métodos

aproximados

•Sistemas Distribuidos (2017-2018)

•Scheduling

•Local •Global

•Static

•Optimal •Sub-Optimal

•Approximate •Heuristic

•10

Planificación dinámica

§ Físicamente no-distribuida: decisión realizada en un único procesador

§ Físicamente distribuida: decisiones tomadas entre diferentes procesadoresq Cooperativa entre diferentes

planificadores localesq No Cooperativa

•Sistemas Distribuidos (2017-2018)

•Dynamic

Phisic nom-.Distrib. •Phisically Distrib.

•Cooperative •Non-Cooperative

•Optimal •Sub-Optimal

•Approximate •Heuristic

•11

Esquemas expulsivos-No expulsivos

§ Planificación no expulsiva (nonpreemptive): una tarea no puede ser interrumpida una vez comenzada su ejecución

§ Planificación expulsiva (preemptive): una tarea puede ser expulsada de un procesador

•Sistemas Distribuidos (2017-2018)

time P1 P20

2

4

T1 T2

T3

time P1 P20

T1T2

T3T2

1

2

3

•12

Esquemas adaptativos-No adaptativos

§ Un planificador adaptativo cambia su funcionamiento de acuerdo a la información que recibe del sistema, es decir, modifica su mecanismo de control en función de la historia pasada.

•Sistemas Distribuidos (2017-2018) •13

Migración de procesos

§ Migrar la ejecución de un proceso de un nodo a otro q Suspender la ejecución, almacenar estado (BCP)q Transferir el espacio de direcciones al nodo destinoq Transferir estadoq Reenviar los mensajes recibidos al proceso migrado

•Sistemas Distribuidos (2017-2018) •14

Mecanismo de migración

•Sistemas Distribuidos (2017-2018) •15

Suspensión de la ejecución

§ Esperar la terminación de las operaciones de E/S pendientes§ Suspender la ejecución del proceso§ Registrar información sobre ficheros abiertos§ Crear un proceso vacío en el nodo destino§ Transferir el espacio de direcciones al nodo destino§ Transferir información del proceso al nodo destino§ Continuar la ejecución en el nodo destino

•Sistemas Distribuidos (2017-2018) •16

Mecanismos de suspensión y transferencia

§ Suspensión total del proceso§ Pre transferencia del proceso§ Transferencia bajo demanda

•Sistemas Distribuidos (2017-2018) •17

Suspensión total

•Sistemas Distribuidos (2017-2018) •18

Pre-transferencia

§ El espacio de direcciones es transferido mientras el proceso continua ejecutando en el nodo origen

•Sistemas Distribuidos (2017-2018) •19

Transferencia bajo demanda

§ El estado del proceso se transfiere inmediatamente y el espacio de direcciones se transfiere bajo demanda

•Sistemas Distribuidos (2017-2018) •20

Reenvío de mensajes

§ ¿Qué ocurre con los mensajes enviados a un proceso (nodo origen) que ha migrado a otro nodo (nodo destino)?

§ Tipos de mensajes:1. Recibidos en el nodo origen después de suspendido el

proceso y antes de comenzar la transferencia al nodo destino

2. Recibidos en el nodo origen después de comenzada la transferencia al nodo destino y antes de comenzar su ejecución en el nodo destino

3. Enviados al proceso que migró una vez comenzada la ejecución en el nodo destino

•Sistemas Distribuidos (2017-2018) •21

Estrategias

§ Reenvío de mensajes por el emisorq Los mensajes de tipo 1 y 2 son descartados o se envía ACK

negativoq El emisor necesita localizar al proceso que ha migrado

§ Reenvío de mensajes por el origenq Los mensajes de tipo 1 son encolados y enviados al nodo

destino como parte del proceso de migraciónq Para los mensajes de tipo 2 y 3

§ El nodo origen mantiene información sobre la posición del nodo donde ha migrado el proceso

§ Los mensajes son enviados al nodo origen y este los encamina al nodo donde ha migrado el proceso

•Sistemas Distribuidos (2017-2018) •22

Estrategias

§ Actualización de enlacesq Durante la transferencia el nodo destino envía información

sobre los enlaces a todos los nodos§ Los mensajes de tipo 1 y 2 son encaminados por el nodo

origen§ Los mensajes de tipo 3 son enviados directamente al nodo

destino

•Sistemas Distribuidos (2017-2018) •23

Planificación de procesos en sistemas distribuidos§ Definición del problema:

q Dados un conjunto de procesadores (CE) y unidades de almacenamiento (SE) distribuidos

q Dadas trabajos con requisitos de CPU y de almacenamiento.§ El algoritmo de planificación es responsable de asignar

trabajos a procesadores y determinar el orden en el que los trabajos se ejecutan en los procesadores

§ Objetivo: buscar una estrategia que:§ Maximice la productividad (throuhgput)§ Minimice el tiempo de respuesta § Maximice el uso de los recursos en global

•Sistemas Distribuidos (2017-2018) •24

Planificación de tareas independientes

§ Trabajos que constan de un conjunto de n >= 1 tareas que pueden ejecutar en paralelo. q Número de tareas = grado de paralelismoq Cada tarea se asigna a un procesadorq Se puede asignar más de una tarea del mismo trabajo al

mismo procesador q Puede requerir sincronización de tareas al final de su

ejecución§ En general el objetivo es equilibrar la carga y maximizar la

productividad

•Sistemas Distribuidos (2017-2018) •25

Algoritmos de planificación de tareas independientes§ FCFS (fisrt come first serverd).

q Más justo para trabajos individuales, sin overhead, rendimiento subóptimo

§ STF (shortest task first or shortest time first)q Necesita conocimiento previo de los tiempo de servicioq Algoritmo no expulsivoq Intenta minimizar el retardo medio y aumentar la

productividadq Puede haber inaniciónq Requiere reordenación de las colas cada vez que llega un

trabajo nuevo

•Sistemas Distribuidos (2017-2018) •26

Algoritmos de planificación de tareas independientes§ Epoch STF (ESTF)

q Las colas de planificación solo se reordenan en ciertos periodos de tiempo

§ El rendimiento de los algoritmos depende mucho de la carga de trabajo

•Sistemas Distribuidos (2017-2018) •27

•Sistemas Distribuidos (2017-2018)

Planificación de aplicaciones paralelas con dependencias§ Definición del problema:

q Dado un conjunto de tareas con ciertas restricciones de precedencia y requisitos de cálculo y comunicación,

q Dado un conjunto de procesadores conectados por una red de interconexión,

q Encontrar la asignación de tareas a procesadores y el orden de ejecución con el objetivo de minimizar el tiempo de ejecución total.

•28

Tipos de planificación

§ Planificación Gang: trabajos que constan de tareas que se comunican entre sí y que ejecutan de forma paralela

§ Planificación DAG (Direct Acyclic Graph)q Los trabajos se descomponen en tareas con restricciones de

precedencia entre ellas

•Sistemas Distribuidos (2017-2018) •29

•Sistemas Distribuidos (2017-2018)

Planificación DAG

1

2 3

4 5

6

4 2 1 P1

6 5 3 P2

Planificador

•30

•Sistemas Distribuidos (2017-2018)

Complejidad del problema

§ El problema en su forma general es NP-completo§ Algoritmos con complejidad polinomial:

q Cuando sólo hay dos procesadores.§ En el caso general se utilizan heurísticas.§ Los planificadores se eligen por 2 métricas:

q El rendimiento del plan generado.q La eficacia del planificador: tiempo tomado por el

planificador para generar un plan.

•31

•Sistemas Distribuidos (2017-2018)

Ejemplo

1

Planificador

5

2

43

10 10

2020

5

1

1 1

11

N1 N2

2 1

3 4

5

N1 N20

10

30

36

•32

•Sistemas Distribuidos (2017-2018)

Criterios para asignar tareas

§ Si dos tareas que se comunican se ejecutan en el mismo nodo, el tiempo de comunicación es cero y se reduce el tiempo de respuesta.

§ Asignar tareas a diferentes nodos, incrementa el paralelismo y puede reducir el tiempo total de ejecución

•33

Planificación Gang

§ Todas las tareas de un trabajo pueden comenzar su ejecución simultáneamente (no hay restricciones de precedencia)

§ El número de tareas debe ser menor o igual que el número de procesadores disponibles

§ La sobrecarga de comunicación entre las tareas de un trabajo se asume que está incluida en el tiempo de ejecución de las tareas.

•Sistemas Distribuidos (2017-2018) •34

Modelo de un gang con N tareas

•Sistemas Distribuidos (2017-2018)

•Helen D. Karatza

•35

Ejemplos de planificadores Gang

§ Ejemplos de planificadores:q First come first served (FCFS)q Adapted first come first serverd (AFCFS)q Largest job first served (LJFS)

•Sistemas Distribuidos (2017-2018) •36

Adapted first come first served (AFCFS)

§ Intenta planificar un trabajo siempre que los procesadores asignados a sus tareas estén disponibles

§ Cuando no hay suficientes procesadores disponibles para un trabajo, planifica trabajos más pequeños situados por detrás en la cola de planificación

§ Tiende a favorecer a trabajos con pocas tareas

•Sistemas Distribuidos (2017-2018) •37

Largest Job First Served (LJFS)

§ Las tareas se ordenan por tamaño. Las tareas que pertenecen a trabajos más grandes se planifican primero

§ Este método mejora el rendimiento de grandes trabajos paralelos, pero esto es deseable en muchos casos (centros de supercomputación)

§ Se ha demostrado que LJFS funciona, en general, mejor que AFCFS, aunque el rendimiento depende del sistema y de la carga de trabajo.

•Sistemas Distribuidos (2017-2018) •38

Planificación DAG

§ Una tarea sin predecesores se denomina tarea de entrada

§ Una tarea sin sucesores se denomina tarea terminal

§ Los predecesores de una tarea se denominan tareas padre

§ Los sucesores de una tarea se denominan hijos§ Cada vértice en un DAG representa una tarea y

el arco representa un mensaje que debe ser enviado de una tarea a otra.

§ Cada arco tiene asignado un coste de comunicación y cada nodo el coste de ejecución

§ Una tarea hijo puede comenzar su ejecución si ha recibido los datos de entrada de todos sus padres

•Sistemas Distribuidos (2017-2018) •39

Modelo

§ Conjunto de procesadores P = {P1, .. . Pm}q Si es la velocidad del procesador Pi

§ Una trabajo T consta de:q Un conjunto de tareas T = {T1, .. Tn}q Un orden < ; Ti < Tj ® Ti debe terminar antes de que Tj

pueda empezarq (Dij) es la matriz de comunicaciones Dij representa el coste

de comunicación entre las tareas Ti y Tj

q (Ai) es el vector de cómputo, Ai representa el coste de ejecución de la tarea Ti

•Sistemas Distribuidos (2017-2018) •40

Medida de rendimiento

§ si denota el tiempo de comienzo de la tarea Ti

§ fi denota el tiempo de terminación de la tarea Ti

§ Longitud de planificación o tiempo máximo de terminaciónw(S) = max { fi(S)}

•Sistemas Distribuidos (2017-2018) •41

•Sistemas Distribuidos (2017-2018)

Ejemplo

1

Planificador

5

2

43

10 10

2020

5

1

1 1

11

N1 N2

2 1

3 4

5

N1 N20

10

30

36

•w(S) = 36

•42

Planificación estática óptima con dos procesadores§ No hay ningún algoritmo polinomial de planificación para

tareas DAG

§ Algoritmo de Coffman-Graham para m = 2 (procesadores) O(n2)q Todas las tareas tienen el mismo tiempo de ejecuciónq Objetivo: asignar una etiqueta j a cada tarea

•Sistemas Distribuidos (2017-2018) •43

Algoritmo de Coffman-Graham

1) Asignar 1,2, 3,.. a una de las tareas terminales2) Sea 1, 2, … j-1, el conjunto de etiquetas ya asignadas. Sea S

el conjunto de tareas no asignadas con sucesores etiquetados. Asignamos la siguiente etiqueta j a un elemento de S:

q Para cada nodo x en S, l(x) = {y1, y2, … yk}§ yi : etiquetas de sus sucesores

q l(x) es la secuencia decreciente de enteros formados por la etiquetas de sus sucesores

q Sea x un elemento de S tal que " x’ en S, l(x) £ l(x’) (lexicográficamente)§ L(x) = j (se asigna la etiqueta j al nodo x)

•Sistemas Distribuidos (2017-2018) •44

Algoritmo de Coffman-Graham

3) Cuando todas las tareas tienen etiqueta, se usa la lista (Tn, Tn-1, … T1) donde L(Ti) = i para planificar las tareas

4) Cuando un procesador se hace disponible se asigna la siguiente tarea de la lista.

•Sistemas Distribuidos (2017-2018) •45

Ejemplo

•Sistemas Distribuidos (2017-2018)

1 2

3

4 5

76

8 9

•46

Ejemplo

•Sistemas Distribuidos (2017-2018)

1 2

3

4 5

76

8 9(1) (2)

•47

Ejemplo

•Sistemas Distribuidos (2017-2018)

1 2

3

4 5

76

8 9(1) (2)

l(6) ={1} l(7) = {2,1}

•48

Ejemplo

•Sistemas Distribuidos (2017-2018)

1 2

3

4 5

76

8 9

(4)(3)

(1) (2)

l(6) ={1} l(7) = {2,1}

•49

Ejemplo

•Sistemas Distribuidos (2017-2018)

1 2

3

4 5

76

8 9

(4)(3)

(1) (2)

l(4) ={4} l(5) = {4}

•50

Ejemplo

•Sistemas Distribuidos (2017-2018)

1 2

3

4 5

76

8 9

(4)(3)

(1) (2)

(5) (6)l(4) ={4} l(5) = {4}

•51

Ejemplo

•Sistemas Distribuidos (2017-2018)

1 2

3

4 5

76

8 9

(4)(3)

(1) (2)

l(3) ={65}

(5) (6)

(7)

•52

Ejemplo

•Sistemas Distribuidos (2017-2018)

1 2

3

4 5

76

8 9

(4)(3)

(1) (2)

(5) (6)

(7)

l(1)={73} l(2) = {7}

•53

Ejemplo

•Sistemas Distribuidos (2017-2018)

1 2

3

4 5

76

8 9

(4)(3)

(1) (2)

(5) (6)

(7)

(9) (8) L(2) = {7}l(1)={73}

•54

Ejemplo

•Sistemas Distribuidos (2017-2018)

1 2

3

4 5

76

8 9

(4)(3)

(1) (2)

(5) (6)

(7)

(9) (8)

84297531

76543210

L={1,2,3,5,4,7,6,9,8}

6•55

•La lista de ejecución es:

Planificación basada en caminos críticos

§ El nivel L de una tarea es la longitud del camino más largo de esa tarea a una tarea terminal del grafo, teniendo en cuenta los tiempos de ejecución de las tareas y los costes de comunicaciónq El nivel L de una tarea terminal es igual a su tiempo de

ejecución.§ El nivel SL (static level) de una tarea es la longitud del camino

más largo de una tarea a una terminal sin tener en cuenta el coste de comunicaciónq El nivel SL de una tarea terminal es igual a su tiempo de

ejecución.§ La longitud del camino crítico de un DAG es la longitud del

camino más largo de una tarea de entrada a una tarea terminal•Sistemas Distribuidos (2017-2018) •56

Ejemplo

•Sistemas Distribuidos (2017-2018)

•El camino crítico es 22

•57

Ejemplos de políticas

§ Highest Level First (HDL)q La tarea de entrada con el nivel L más grande se planifica

primero§ Dynamic Level Scheduling (DLS)

q En cada etapa, se selecciona el par (Ti, Pj) que da el valor más alto para la expresión

SL(Ti) – EST(Ti, Pj)q Donde

§ SL(Ti) es el nivel SL de la tarea Ti y EST(Ti, PJ) es el tiempo de inicio estimado más pequeño de Ti en Pj

•Sistemas Distribuidos (2017-2018) •58

List scheduling

§ En una planificación basada en lista se asigna a cada tarea una prioridad

§ Se construye una lista de tareas en orden decreciente de prioridad

§ Cuando un procesador está disponible, se asigna la tarea lista con la prioridad más alta

§ Los diferentes planificadores asignan diferentes prioridades a las tareas

§ Se puede demostrar que utilizar el nivel L como prioridad es el más cercano a la solución óptima

•Sistemas Distribuidos (2017-2018) •59

Algoritmo Earliest-Task-First

1. Prioridad de la tarea j = Nivel de la tarea2. Se calcula el número de predecesores (NP) inmediatos de cada tarea3. Se inicializa una cola con las tareas listas que no tienen predecesores

inmediatos (NP = 0)4. Mientras la cola no esté vacía

1. Obtener una tarea de la cola2. Seleccionar un procesador para ejecutar la tarea. Se selecciona un

procesador de forma que la tarea no pueda terminar antes en otro procesador

3. Cuando una tarea termina se resta 1 al valor NP de todos sus sucesores4. Cuando NP se hace 0 para una tarea, se inserta en la cola

•Sistemas Distribuidos (2017-2018) •60

Ejemplo

•Sistemas Distribuidos (2017-2018)

1

2 3

1

1

1

4

2

1

11

1Tarea NP Nivel L

1 0 6

2 1 3

3 1 4

4 2 1

•61

•número de predecesores (NP) inmediatos de cada tarea

•longitud del camino más largo de esa tarea a •una tarea terminal del grafo

Ejemplo

•Sistemas Distribuidos (2017-2018)

1

2 3

1

1

1

4

2

1

11

1Tarea NP Nivel L

1 0 6

2 1 3

3 1 4

4 2 1

•62

1. Se inicializa una cola con las tareas listas que no tienen predecesores inmediatos (NP = 0) y se ejecutan

Ejemplo

•Sistemas Distribuidos (2017-2018)

1

2 3

1

1

1

4

2

1

11

1Tarea NP Nivel L

1 0 6

2 0 3

3 0 4

4 2 1

•63

1. Cuando una tarea termina se resta 1 al valor NP de todos sus sucesores y se

2. Insertan en la lista de nodos con NP=0

1.

Ejemplo

•Sistemas Distribuidos (2017-2018)

1

2 3

1

1

1

4

2

1

11

1Tarea NP Nivel L

1 0 6

2 0 3

3 0 4

4 2 1

•64

1. Se ejecutan las tareas con NP = 0

1.

Ejemplo

•Sistemas Distribuidos (2017-2018)

1

2 3

1

1

1

4

2

1

11

1Tarea NP Nivel L

1 0 6

2 0 3

3 0 4

3 1 1

•65

1. Termina 2 2. Se resta 1 al valor NP de 4

1.

Ejemplo

•Sistemas Distribuidos (2017-2018)

1

2 3

1

1

1

4

2

1

11

1Tarea NP Nivel L

1 0 6

2 0 3

3 0 4

4 0 1

•66

1. Termina 3 2. Se resta 1 al valor NP de 4 se inserta en

la lista de tareas con NP = 01.

Ejemplo

•Sistemas Distribuidos (2017-2018)

1

2 3

1

1

1

4

2

1

11

1Tarea NP Nivel L

1 0 6

2 0 3

3 0 4

3 0 1

•67

1. 3 se inserta en la lista de tareas con NP = 0 y se ejecuta

1.

Ejemplo

•Sistemas Distribuidos (2017-2018)

1

2 3

1

1

1

4

2

1

11

1Tarea NP Nivel L

1 0 6

2 0 3

3 0 4

3 0 1

•68

1. 3 se inserta en la lista de tareas con NP = 0 y se ejecuta

1.

Heurísticas de planificación

§ Factores que incrementan la complejidad de la planificación:q Tareas con tiempos de ejecución diferentesq Enlaces entre nodos con velocidades diferentesq Enlaces compartidos o dedicadosq Topología de la redq Heterogeneidad de los nodosq Estructura del programa paralelo

§ La planificación heurística intenta aplicar heurísticas que reduzcan la complejidad del problema

•Sistemas Distribuidos (2017-2018) •69

Paralelismo y retardo en las comunicaciones

•Sistemas Distribuidos (2017-2018)

1

2 3

1

1 1

Dx

¿Cómo planificar en dos procesadores?

•70

Paralelismo y retardo en las comunicaciones

•Sistemas Distribuidos (2017-2018)

T1

T2 T3

time P1 P20

1

2

3

T1

T2

T3

1

1 1

Dx

Si Dx > tiempo de ejecución de T2

•71

Paralelismo y retardo en las comunicaciones

•Sistemas Distribuidos (2017-2018)

T1

T2 T3

time P1 P20

1

2

3

T1

T2

T3

1

1 1

Dx

Si Dx > tiempo de ejecución de T2

P1 P2

T1

T2

T3

•72

Paralelismo y retardo en las comunicaciones

•Sistemas Distribuidos (2017-2018)

T1

T2 T3

time P1 P20

1

2

3

T1

T2

T3

1

1 1

Dx

Si Dx < tiempo de ejecución de T2

P1 P2

T1

T2

T3

•73

Algoritmos de agrupación (clustering)

§ Determinan la mejor agrupación de tareas en el grafo para que el tiempo de ejecución sea mínimo

§ Todos los nodos en el mismo grupo se ejecutan en el mismo procesador.

§ La agrupación óptima es NP-completo.§ {T1, ..., Tn} {C1, ..., Ck}

•Sistemas Distribuidos (2017-2018) •74

Duplicación de tareas

§ Heurística que duplica la ejecución de las tareas para reducir los retardos de comunicación

•Sistemas Distribuidos (2017-2018)

1

2 3

1

1

1

4

2

1

11

1

time0

1

2

3

P1 P2

T1

T2

T3

sin duplicación

•75

Duplicación de tareas

§ Heurística que duplica la ejecución de las tareas para reducir los retardos de comunicación

•Sistemas Distribuidos (2017-2018)

1

2 3

1

1

1

4

2

1

11

1

time P1 P20

1

2

3

T1

T2 T3

P1 P2

T1

T2

T3

T1’

con duplicación sin duplicación

•76

•Sistemas Distribuidos (2017-2018)

Algoritmos de distribución de la carga

§ Objetivo: decidir en qué procesador se debería ejecutar un nuevo trabajo para equilibrar la carga y optimizar el rendimiento.q Evitar que un nodo esté inactivo mientras hay procesos

esperando a ejecutar.§ Suposiciones:

q Todos los procesadores son compatible en el código.q La velocidad de los procesadores puede ser distinta.q Conectividad total: cualquier procesador puede comunicarse

con cualquier otro.

•77

Algoritmos clásicos

§ Random: cada trabajo nuevo se envía a un procesador/servidor elegido aleatoriamente

§ Cíclico: los trabajos se van asignando de forma cíclica§ Shortest-queue-first: cada trabajo nuevo se asigna al procesador/servidor

con el menor número de trabajos§ Two-random-choices (SQ-2): cada vez que llega un proceso nuevo se

eligen dos procesadores/servidores de forma aleatoria y el trabajo se envía al que menor número de trabajos tiene

§ Two-random choices with randomization (SQ-RR(2)): cada vez que llega un proceso nuevo se eligen dos procesadores/servidores, uno de forma aleatoria y otro cíclico y el trabajo se envía al que menor número de trabajos tiene

•Sistemas Distribuidos (2017-2018) •78

Felix, and Alejandro Calderon. "Reducing Randomization in the Power of TwoChoices Load Balancing Algorithm." High Performance Computing & Simulation (HPCS), 2017 International Conference on. IEEE, 2017.

Evaluación

•Sistemas Distribuidos (2017-2018) •79

0

5

10

15

20

25

30

35

0,5 0,7 0,8 0,9 0,95 0,99

Tiem

po0m

edio0de0respuesta

Carga

sqf

random

round<robin

two<random<choices

SQ(2) vs SQ-RR(2)1000 servidores

•Sistemas Distribuidos (2017-2018) •80

•For exponential services time

Probabilidad de elegir un servidor vacío(1000 servidores y d = 2)

•Sistemas Distribuidos (2017-2018) •81

•For exponential services time

Porcentaje de mejora de SQ-RR sobreSQ (n=100,n=1000, n=10000 servidores)

•Sistemas Distribuidos (2017-2018) •82

•For exponential services time

Porcentaje de mejora de SQ-RR sobreSQ (n=10, 20 y 50 servidores)

•Sistemas Distribuidos (2017-2018) •83

•For exponential services time

Resultados para cargas de trabajo reales

•Sistemas Distribuidos (2017-2018) •84

§ Distribution of tasks execution time (Google Datacenter traces vs lognormal characterization) [7]

•Log-normal aprox:

Porcentaje de mejora de SQ-RR sobreSQ para cargas de trabajo Google

•Sistemas Distribuidos (2017-2018) •85

•Sistemas Distribuidos (2017-2018)

Asignación de procesadores

§ Estrategias:q No migratorias: una vez arrancado un proceso éste no

cambia de procesador.q Migratorias: los procesos pueden cambiar de procesador

durante su ejecución.§ Mejor equilibrio de la carga pero más complejas.

§ Criterios de optimización:q Maximizar la utilización total de los procesadoresq Minimizar el tiempo de respuesta medioq Minimizar la tasa de respuestaq Maximizar la productividad

•86

•Sistemas Distribuidos (2017-2018)

Algoritmos de distribución de la carga

§ Política de transferencia: determina cuándo transferir.§ Política de selección: selección del proceso a transferir.§ Política de ubicación: selecciona el nodo al que transferir.§ Política de información: decide cuándo, desde dónde y qué

información sobre otros nodos recoger.

•87

•Sistemas Distribuidos (2017-2018)

Política de transferencia(determina cuándo transferir)

§ Basadas en umbral:q Si la carga excede de T unidades de carga en el nodo S, éste

se convierte en emisor de un proceso.q Si la carga cae por debajo de T unidades, entonces S se

convierte en receptor de procesos remotos.§ Tipos de transferencias:

q Expulsivas: se pueden transferir los procesos ejecutadosparcialmente.§ Supone transferir el estado del proceso (migración)

q No expulsivas: los procesos en ejecución no pueden ser transferidos.

•88

•Sistemas Distribuidos (2017-2018)

Políticas de selección(selección del proceso a transferir)

§ Elegir los procesos nuevos.§ Elegir procesos en ejecución

q Seleccionar los procesos con un tiempo de transferencia mínimo (poco estado, mínimo uso de los recursos locales).

q Seleccionar un proceso si su tiempo de respuesta estimado en un nodo remoto es menor que el tiempo de respuesta local.

•89

•Sistemas Distribuidos (2017-2018)

Política de ubicación(selecciona el nodo al que transferir)

§ Muestreo: se muestrean otros nodos para encontrar uno adecuado.q Los nodos pueden ser muestreados secuencialmente o en

paralelo.q Selección aleatoria.q Nodos más próximos.q Basada en información recogida anteriormente.

§ Enviar un mensaje al resto de nodos (broadcast). § Dos tipos de políticas:

q Iniciadas por el emisor.q Iniciadas por el receptor.

•90

•Sistemas Distribuidos (2017-2018)

Política de información(información sobre otros nodos)

§ Bajo demanda: la información se recoge sólo cuando un nodo se convierte en un emisor o receptor de procesos.q Iniciada por el emisor: el emisor busca receptores.q Iniciada por el receptor: el receptor solicita procesos a

otros nodos.q Combinada: iniciada por el emisor o por el receptor.

§ Periódicas: los nodos intercambian información periódicamente.q Sobrecarga constante en el sistema.q No se adapta a las necesidades:

§ Alta periodicidad: mucha sobrecarga.§ Baja periodicidad: reparto de carga ineficaz.

•91

•Sistemas Distribuidos (2017-2018)

Política de información(información sobre otros nodos)

§ Dirigida por el cambio de estado: los nodos envían su información sólo cuando cambia su estado.q Centralizado: la información se envía a un nodo central.q Distribuido: la información se envía a todos los nodos.q La recogida de información depende de la carga del sistema.

•92

•Sistemas Distribuidos (2017-2018)

Estabilidad y efectividad

§ Un algoritmo es inestable si la tasa de trabajo que llega a un nodo (externa + transferencias) excede de la capacidad de ese nodo.

§ Un algoritmo es inestable si existe la probabilidad de que los procesos se muevan de un nodo a otro sin haber ejecutado.

§ Un algoritmo es efectivo si mejora el rendimiento del sistema.

•93

•Sistemas Distribuidos (2017-2018)

Clasificación de los algoritmos

§ Dinámicos: Utilizan la carga local para tomar decisiones.q Tienen en cuenta las posibles fluctuaciones.q Sobrecarga en la recogida, almacenamiento y análisis de la

información.§ Deterministas: Se toma información a priori para la toma de

decisiones.§ Adaptativos: similar a los dinámicos pero adaptando el

algoritmo a la carga del sistema.§ Algoritmos óptimos o subóptimos.§ Algoritmos locales o globales.

§ Con locales se transfiere un proceso cuando la máquina local está muy cargada.

§ Con globales se tiene en cuenta la carga global del sistema.

•94

•Sistemas Distribuidos (2017-2018)

Algoritmos iniciado por el emisor

§ Política de transferencia: umbral basado en la longitud de la cola de CPU.

§ Política de selección: procesos nuevos.§ Política de ubicación:

q Elegir un nodo al azar.q Probar con un nº de nodos para encontrar un receptor. Si no

lo hay, ejecutarlo localmente.q Probar en un nº de nodos y elegir aquel con la cola de

planificación más corta.§ Política de información: con las dos últimas la información se

recoge cuando un nodo se convierte en emisor.§ Estabilidad: inestable con alta carga ya que será difícil

encontrar receptores y los muestreos consumen ciclos de CPU innecesarios.

•95

•Sistemas Distribuidos (2017-2018)

Algoritmos iniciados por el receptor

§ Política de transferencia: umbral basado en la longitud de la cola de CPU.

§ Política de selección: cualquier proceso.§ Política de ubicación:

q Muestrear aleatoriamente un nº limitado de nodos hasta encontrar uno con un nivel de carga mayor que T+1.

q Si la búsqueda falla, esperar hasta que otro proceso termine antes de intentar o esperar un periodo predeterminado.

§ Política de información: comienza cuando un nodo se convierte en receptor.

§ Estabilidad: estable. A altas cargas, es probable que los receptores encuentren emisores.

•96

•Sistemas Distribuidos (2017-2018)

Algoritmos combinados

§ Política de transferencia0 Tmin Media Tmax

receptor emisor

• Política de ubicación dirigida por el emisor:q El emisor difunde un mensaje EMISOR y espera

ACEPTAR.q Un receptor envía ACEPTAR.q Cuando llega ACEPTAR: si el nodo es emisor,

transfiere el proceso más adecuado.q Si no llega ningún mensaje ACEPTAR, difundir un

mensaje CAMBIO-MEDIA para incrementar la carga media estimada.

•97

•Sistemas Distribuidos (2017-2018)

Algoritmos simétricos

§ Política de ubicación iniciada por el receptor:q Un receptor difunde un mensaje RECEPTOR y espera por

mensajes EMISOR.q Si llega un mensaje EMISOR, se envía un mensaje

ACEPTAR.q Si no llega ningún mensaje EMISOR, difundir un mensaje

CAMBIO-MEDIA para decrementar la carga media estimada en el resto de nodos.

§ Política de selección: cualquier proceso.§ Política de información:

q Dirigida por demanda.q La carga media del sistema se determina localmente.

•98

•Sistemas Distribuidos (2017-2018)

Ejemplo 1

N >=T

H>= Hmax

NO

SI

N=N+1ejecutar elproceso localmente

stop

escoge un nodo x al azar

NO

H=H+1enviar el procesoal nodo x stop

proceso

N: tamaño de la cola local; H: contador de saltosT: tamaño umbral de la cola; Hmax: valor máximo del contador de saltos

SI

•99

•Sistemas Distribuidos (2017-2018)

Políticas del ejemplo 1

§ Política de transferencia: umbral de carga§ Política de selección: cualquier proceso.§ Política de ubicación: aleatoria.§ Política de información: comienza cuando un nodo se

convierte en emisor.

•100

•Sistemas Distribuidos (2017-2018)

Ejemplo 2

N>=TNO

N=N+1ejecutar elproceso localmente

stop

escoge un nodo x al azar y probar

P>= PmaxSI

NO

enviar el procesoal nodo x

proceso

N: tamaño de la cola local; P: contador de pruebaT: tamaño umbral de la cola; Pmax: máximo valor de prueba

SI

P=P+1P=0

¿x acepta?

stop

NO

SI

•101

•Sistemas Distribuidos (2017-2018)

Políticas del ejemplo 2

§ Política de transferencia: umbral de carga.§ Política de selección: cualquier proceso.§ Política de ubicación: prueba aleatoria limitada.§ Política de información: comienza cuando un nodo se

convierte en emisor.

•102

•Sistemas Distribuidos (2017-2018)

Ejemplo 3

N>=TNO

N=N+1ejecutar elproceso localmente

stop

Probar en todaslas máquinas

Enviar el proceso al nodo x con la carga más pequeña

proceso

N: tamaño de la cola local;T: tamaño umbral de la cola;

SI

stop

•103

•Sistemas Distribuidos (2017-2018)

Políticas del algoritmo 3

§ Política de transferencia: basada en umbral de carga.§ Política de selección: cualquier proceso.§ Política de ubicación: nodo con la carga más pequeña.§ Política de información: comienza cuando un nodo se

convierte en emisor.

•104

Ejemplo de presentación de artículo

Decoupling Computation and Data Schedulingin Distributed Data-Intensive ApplicationsKavitha Ranganathan, Ian Foster (University of Chicago )

High Performance Distributed Computing, 2002. HPDC-11 2002. Proceedings. 11th IEEE International Symposium on

Introducción

§ La planificación de procesos en sistemas distribuidos es un problema complejo.

§ Crítico en aplicaciones y simulaciones científicas.

§ Intento de resolución de distintas formas pero sigue sin encontrarse una solución óptima para todo tipo de arquitecturas, datos y procesos.

•Sistemas Distribuidos (2017-2018) •106

Definición del problema

§ Dados un conjunto de procesadores (CE) y unidades de almacenamiento (SE) distribuidos por sitios.

§ Dadas aplicaciones con requisitos de CPU y de almacenamiento.

§ Objetivos:q Buscar una estrategia que:

§ Maximice la productividad (throuhgput)§ Maximice el uso de los recursos en global

•Sistemas Distribuidos (2017-2018) •107

Arquitectura

User User User User User

ES ES

J

Computers Storage

DJJ DD

J JQ:

Local Scheduler

DataSet Scheduler

DSLS

Computers Storage

Data Mover DSLS

Computers Storage

J

J

J

D

D

Schedule on idle node Monitor

popularity

Migrate data

Request remote data

N users

E External Schedulers

S Sites

•Sistemas Distribuidos (2017-2018) •108

Propuesta

§ Analizar el impacto de:q Planificación de trabajosq Planificación de datosque tienen juntos y por separado a la hora de conseguir el máximo beneficio.

§ Se utilizarán distintos algoritmos de planificación.

•Sistemas Distribuidos (2017-2018) •109

Planificación de Trabajos (ES)

§ Randomq Elegir el sitio de forma aleatoria.

§ LeastLoadedq Elegir el sitio menos cargado

§ Localq El trabajo se realiza en el sitio que lo recibe.

§ AtDataq El trabajo se manda al sitio donde más cantidad de datos

que necesite tenga.q Si hay varios se elige el menos cargado

•Sistemas Distribuidos (2017-2018) •110

Replicación de Datos (DS)

§ Cachingq no se replica,

§ Ramdomq Se elige para replicar los archivos más

populares. Cuando sobrepasa un cierto umbral, se elije al azar la máquina a replicarlo

§ LeastLoadedq Cuando pasa del umbral al que menos cargado

esté.

•Sistemas Distribuidos (2017-2018) •111

Metodología de evaluación

§ Simulador:q Realizado en Parsec (simulador de eventos discretos).

§ Las entidades (CE, SE, DM, ES, la red, etc.) se comunican por mensajes.

§ Los algoritmos se realizan en cada una de las entidades involucradas.

q No hay topología de red, los sitios están todos interconectados.

q Ancho de banda de la red constante.q Usuarios asociados a 1 ES.q Varios ES, no intercomunicados.

•Sistemas Distribuidos (2017-2018) •112

Infraestructura simulada

§ Número de usuarios: 120§ Número de sitios: 30§ Número total de trabajos: 6000§ Ancho de banda: 10MB/seg§ Elementos de cómputo por sitio: 2-5

•Sistemas Distribuidos (2017-2018) •113

Carga de trabajo

§ Peticiones por una Poisson con llegada cada 5 seg§ Tamaños de conjuntos de datos distribución entre

500MB-2GB. § Cada trabajo necesita un único fichero para la

ejecución y tarda 300D segundos, donde D=tam fichero en GB.

§ Se ignora la salida.§ Coste transmisión= size fich/ ancho de banda.§ El tipo de trabajos se genera con una Zip-f

•Sistemas Distribuidos (2017-2018) •114

Resultados

•Sistemas Distribuidos (2017-2018) •115

Resultados

•Sistemas Distribuidos (2017-2018) •116

Conclusiones

§ Localidad de los datos importante para planificar.§ Desacoplamiento movimiento de datos/ planificación

de trabajos incrementa el rendimiento y descentraliza el sistema.

§ Dependencia de las características del Grid.§ Trabajos con ficheros pequeños: mejor mandar a

varios sitios y esperar respuesta que mandar los datos por la red.

•Sistemas Distribuidos (2017-2018) •117