scheduling en un ambiente paralelo
DESCRIPTION
Scheduling en un ambiente Paralelo. Carlos Pon Soto Departamento de Ingeniería de Sistemas y Computación Universidad Católica del Norte. Scheduling. Introducción Modelo Tareas del programa Maquina Schedule Tiempo de Ejecución y Comunicación Complejidad del Problema - PowerPoint PPT PresentationTRANSCRIPT
CL-GRID III
Scheduling en un ambiente Scheduling en un ambiente ParaleloParalelo
Carlos Pon SotoCarlos Pon Soto
Departamento de Ingeniería de Departamento de Ingeniería de Sistemas y ComputaciónSistemas y Computación
Universidad Católica del NorteUniversidad Católica del Norte
CL-GRID III
Scheduling Introducción Modelo
Tareas del programa Maquina Schedule Tiempo de Ejecución y Comunicación
Complejidad del Problema Scheduling sin considerar los costos de comunicación Scheduling considerando los costos de comunicación Algoritmos Heurísticos Clustering Duplicaciones Una aplicación de caso real
CL-GRID III
Introducción a Scheduling
Este problema ha sido descrito en un número de diferentes maneras en diferentes campos
El problema clásico de secuenciar los trabajos en la administración de producción ha influenciado la mayoría de las soluciones
Conjunto de recursos y un conjunto de consumidores
CL-GRID III
Sistema de Scheduling
ConsumidoresConsumidores RecursosRecursos
SchedulerScheduler
PolíticaPolítica
CL-GRID III
Diseño Metodológico
Particionamiento: el calculo que va a ser realizado y los datos con el cual va a operar sobre esta computación es descompuesta en pequeñas tareas.
Comunicación: Se determina la comunicación requerida para coordinar la ejecución de las tareas. Se definen estructuras de comunicación y algoritmos apropiados.
Aglomeración: Las estructuras definidas en las primeras dos etapas (tareas y comunicación) son evaluadas con respecto a requerimientos de rendimiento y costos de implementación. Las tareas son combinadas en tareas mas grandes si es necesario para mejorar el rendimiento o reducir costos de desarrollo.
Scheduling: Cada tarea es asignada a un procesador de una manera que intenta satisfacer los objetivos de maximizar la utilización de los procesadores y minimizar los costos de la comunicación
CL-GRID III
Diseño Metodológico
CL-GRID III
Particionador
Granos de Código secuencial
Sistema paralelo/distribuido
Tareasdel programa Paralelo
Scheduler
Schedule
Procesadores
tiempo
Tareas del programa
ProgramaSecuencial
Enfoque explícitoEnfoque Implícito
Analizador Dependencia
Ideal Parallelism
Scheduling Tareas Paralelas
CL-GRID III
Tareas del programa
(T, <, D, A)
T conjunto de tareas < orden parcial sobre T D Comunicación de Datos A Cantidad de cómputo (instrucciones)
CL-GRID III
Grafo de Tareas
A
10
D
15
E
10
F
20
B
15
C
10
G
15
H
15
I
30
558 7
5
5 5
10
5
4 5 4
20
CL-GRID III
Máquina
m procesadores heterogéneos
Conectados vía una red de interconexión arbitraria (grafo de la red)
Asociado con cada procesador Pi es su velocidad Si
Asociado con cada arco (i,j) es la razón de transferencia Rij
CL-GRID III
Ejemplos de Máquinas
Arreglo Lineal
Anillo
Malla
6 3
1 2
5 4
Completamente conectado
CL-GRID III
Schedule de Tareas
Carta Gantt Mapear (f) las tareas a un elemento de procesamiento
y un tiempo de inicio Formalmente:
f: T {1,2,3, …, m} x [0infinito f(v) = (i,t) tarea v es asignada a ser procesada por el
procesador i comenzando en el tiempo t
CL-GRID III
Carta Gantt
Processor
Time
1 2 3 4 5 0
1
2
3
4
Stop
Start
W-1 W-2 W-3 W-4 W-5
CL-GRID III
Carta Gantt con Comunicación
2 1
3
4
10
30
11
31
36
P1 P2time
0
P3
6
5
CL-GRID III
Tiempos de Ejecución y de Comunicación
Si la tarea ti es ejecutada en pj
Tiempo de Ejecución = Ai/Sj
El retardo de comunicación entre ti y tj, cuando es ejecutada en procesadores adyacentes pk y pl es
Dij/Rkl
CL-GRID III
Complejidad
Computacionalmente NP completo Pequeño número de algoritmos óptimos que son de
orden polinimial en casos restringidos Un gran número de heurísticas en casos mas
generales Quality of the scheduleschedule vs. Quality of the schedulerscheduler
CL-GRID III
Scheduling Tareas del Grafo sin considerar los costos de la comunicación
Algoritmos óptimos de orden Polinomial en los siguientes casos:
1. Grafo de tareas es in-forest o out-forest
2. Grafo de tareas es un intervalo ordenado
3. Solamente dos procesadores
CL-GRID III
Suposiciones
Un grafo de tareas consiste de n tareas Un sistema distribuido hecho de m procesadores El tiempo de ejecución de cada tarea es una unidad de tiempo La comunicación entre cualquier par de tareas es cero El objetivo es encontrar una asignación óptima, el cual
minimiza el tiempo de finalización
CL-GRID III
Scheduling de Lista
Los tres algoritmos pertenecen a la clase de scheduling de lista.
Cada tarea es asignada con una prioridad, y una lista de tareas es construida en un orden de prioridad decreciente.
Una tarea llega a estar lista para su ejecución cuando sus predecesores inmediatos en el grafo de tareas ya han sido ejecutados o si estos no tienen ningún predecesor.
CL-GRID III
Scheduling grafo de tareas in-forest/out-forest
1. Cuando cada nodo tiene a lo máximo un sucesor inmediato (in-forest) o cada nodo tiene a lo máximo un predecesor inmediato (out-forest)
2. El nivel de cada nodo en el grafo de tareas es calculado como se dice anteriormente y es usado como prioridad de cada nodo
3. Cuando un procesador llega a estar disponible, asignele la tarea lista no ejecutada con la mas alta prioridad
CL-GRID III
Ejemplo
10
14 13
12
11
9
8 7
5
6
4
2
3
1
P1 P2 P3
1
2 3 4
5 6 7
8 9 10 11 12
13 14 Level 5
Level 4
Level 3
Level 2
Level 11
1 1 1
1 1 1
1 1 1 1 1
1 1
La longitud del schedule es 5 unidades de tiempo, el cual es la
planificación óptima. Esto significa que independiente del número
de procesadores que podamos usar, no se podrá lograr un
schedule mas corto que 5
CL-GRID III
Scheduling tareas ordenadas por intervalo
1. El número de sucesores de cada nodo es usado como la prioridad de cada nodo
2. Cuando un procesador llega a estar disponible, asigne a éste la tarea lista sin ejecutar con la mas alta prioridad
CL-GRID III
Ejemplo
0 0 0
3 2 1
4 5 61
9
1 1
1 1 1
1 1 1
1 2 3
654
7 8
Time P1 P2
123
4 5 6
87 9
P30
1
2
3
La longitud del schedule es 3 unidades de tiempo, el cual es la planificación óptima.
Note que la longitud de la ruta mas larga desde un nodo fuente a un nodo terminal
(ruta crítica) es también 3. Esto significa que independiente del número de
procesadores no podremos lograr longitudes de schedule mas corto que 3 unidades
de tiempo.
CL-GRID III
Scheduling de dos procesadores
1. Asigne 1 a una de las tareas terminales.
2. Sean las etiquetas 1,2,...,j-1 han sido asignadas. Sea S el conjunto de tareas no asignadas sin sucesores no etiquetados. Luego seleccionamos un elemento de S para asignarle la etiqueta j. Por cada nodo x en S defina l(x) como sigue: Sea y1, y2, ...,yk los sucesores inmediatos de x. Luego l(x) es la secuencia decreciente de enteros formados por el ordenamiento del conjunto {L(y1), L(y2),..., L(yk)}. Sea x un elemento de S tal que para todos los x' en S, l(x) ≤ l(x') (lexicograficamente). Defina L(x) a ser j.
3. Use L(v) como la prioridad de la tarea v y los empates se resuelven arbitrariamente.
4. Cuando un procesador llegue a estar disponible, asigne a este la tarea lista no ejecutada con la mas alta prioridad. Los empates se resuelven arbitrariamente.
CL-GRID III
Ejemplo
1
3
4
2
5
67
16
9
10
11
12
15
8
17
13
14
P1 P2time
2 1
4 1
5 1
6 1
7 1
81
11
91
101
111
151
13
131
121
141
161
171
12 3
4 56
78 910
11 12
13
14
15 16 17
CL-GRID III
Modelos de Comunicación
Tiempo de Finalización Tiempo de Ejecución Tiempo de Comunicación
Tiempo de finalización como dos componentes
Tiempo de finalización de la carta Chart
CL-GRID III
Tiempo de Finalización con 2 Componentes
Tiempo de Finalización = Tiempo de Ejecución + Retardo de Comunicación Total
Retardo de Comunicación Total = Número de mensajes de comunicación * retardo por mensaje
Tiempo de ejecución Tiempo de finalización máximo de cualquiera tarea
Número de mensajes de comunicación model A Model B
CL-GRID III
Número de mensajes de Comunicación
Dado un grafo de tareas G = (V,E) y su asignación sobre m procesadores, usamos proc(v) para referirnos al procesador para el cual la tarea v es asignada.
Modelo A: número de mensajes = el número de par de nodos (u,v) tal que (u,v) pertenece a E y proc(u) ≠ proc(v).
Modelo B: número de mensajes = el número de pares procesador-tarea (P,v) tal que el procesador P no calcule la tarea v pero calcula al menos un sucesor directo de v.
CL-GRID III
Ejemplo
A
1
D
1
E
1
B
1
C
1
Asuma un sistema con 2 procesadores
CL-GRID III
Modelos A y B
Asuma que las tareas A, B, y D son asignadas a P1 y las tareas C y E son asignadas a P2
A
B
D
P1
C
E
P2
Modelo A
Número de mensajes = 2
Tiempo de finalización = 3 + 2
Modelo B
Número de mensajes = 1
Tiempo de finalización = 3 + 1
CL-GRID III
Modelo C: Este modelo asume la existencia de un procesador de E/S que está asociado con cada procesador en el sistema. Una tarea puede ser asignada a un procesador para su ejecución mientras este procesador está realizando la comunicación
A
B
C D
E
Retardo de Comunicación
P1 P20
1
2
3
4
CL-GRID III
Algoritmos óptimos con Comunicación
Intervalos ordenados sobre n procesadores In-forests / out-forests en dos procesadores
CL-GRID III
Pasos del algoritmo principal
Agregar nuevo
arco para
compensar por
la comunicación
Schedule el
grafo
aumentado
usando el
algoritmo de Hu
Hacer
correciones de
Asignaciones
Grafo de Tareas
Grafo de Tareas Aumentado
Schedule (correct length)
Schedule (correcto)
CL-GRID III
La profundidad de un nodo es definida como la longitud de la ruta mas larga desde cualquier nodo con profundidad cero a ese nodo. Un nodo sin predecesores tiene una profundidad de cero. En otras palabras, la profundidad(u) = 1 + max{profundidad(v)}, v predecesores(u); y profundidad(u) = 0 u, predecesores(u) =.
Dado un schedule f, definimos la operación Swapall(f, x, y), donde x e y son
dos tareas en f asignadas a comenzar en el tiempo t en los procesadores i
y j, respectivamente. El efecto de esta operación es intercambiar todos los
pares de tareas asignados en los procesadores i y j en la asignación f en el
tiempo t1, t1, t1 ≥ t
Operación Swapall
Profundidad del Nodo
Definiciones
CL-GRID III
1. Dado un grafo in-forest G = (V, A), identifique el conjunto de hermanos: S1,
S2, . . . , Sk, donde Si es el conjunto de todos los nodos en V con un hijo común
child(Si).
2. A1 A.
3. Por cada conjunto Si
(a) seleccione un nodo u Si con la máxima profundidad
(b) A1 A1 - (v, child(Si)) v Si y v ≠ u
(c) A1 A1 U (v, u) v Si y v ≠ u.
4. Obtener el schedule f aplicando el algoritmo 1 en el in-forest aumentado F =
(V, A1).
5. Por cada conjunto Si en el in-forest G original si el nodo u (con la máxima
profundidad) es scheduled en f en la ranura de tiempo inmediatamente antes
de child(Si) pero en un procesador diferente, luego aplique la operación
Swapall(f, child(Si), x), donde x es la tarea asignada en la ranura de tiempo
inmediatamente después de u en el mismo procesador
Algoritmo 4
CL-GRID III
Ejemplo 5
-Identificamos el conjunto de hermanos con un hijo común. La figura (b) muestra cuatro conjuntos: S1 = {a, b}, S2 = {c, d}, S3 = {e, f}, S4 = {g, h}
- Seleccionamos el nodo que tenga la máxima profundidad de cada conjunto. Ya que a y b en S1 y e y f en S3 tienen la misma profundidad, seleccionamos b de S1 y f de S2 aleatoriamente. Lo mismo se hace con S2 y S4, seleccionando los nodos c y g respectivamente. Estos se muestran en gris.
CL-GRID III
Ejemplo 5
-El grafo de tareas aumentada (F) es construido como se muestra en la figura (c).
- El algoritmo 1 puede ser aplicado para scheduling in-forest sin considerar la comunicación al grafo de tareas aumentada (F). La figura (d) y (e) muestran las prioridades de las tareas y la asignación óptima cuando se ignora la comunic.
CL-GRID III
Ejemplo 5
-El schedule mostrado en la figura (e) no es correcto cuando la comunicación es considerada ya que las tareas comunicándose b y c están asignados en procesadores diferentes
- La figura (f) muestra el schedule óptimo final en dos procesadores cuando es considerada la comunicación
CL-GRID III
Definiciones
start-time(v,i,f) Es el tiempo mas temprano de inicio en el cual la tarea v puede iniciar la ejecución en el procesador Pi en la asignación f
task(i,t,f)
La tarea asignada en el procesador Pi en el momento t en la asignación f. Si no hay ninguna tarea asignada en el procesador Pi en el momento t en la asignación f, luego task(i,t,f) retorna la tarea vacía . Note que la prioridad de la tarea vacía es menor que la prioridad de cualquier otra tarea.
CL-GRID III
Algoritmo
1. El número de todos los sucesores de cada nodo es usado como la prioridad de cada nodo.
2. Los nodos con la mas alta prioridad son asignados primero.
3. Cada tarea v es asignada al procesador Pi con el tiempo de inicio mas temprano.
4. Si start-time(v,i,f) = start-time(v,j,f), 1 ≤ i,j ≤ m, la tarea v es asignada al procesador Pi si task(i, start-time(v,i,f)-1, f) tiene la prioridad mas pequeña (número mas pequeño de sucesores).
CL-GRID III
Ejemplo
a b c d
i j k l
e f g h
a
bcd
ef g
h
i
j
P1 P2 P3
k l
a
bcdefg
hij
56
78
432
100
Node SucessorsNumber of
k
l0
0
Task Graph Task Priority
Gantt Chart
0
1
2
3
4
5
Time
CL-GRID III
Algoritmos heurísticos
Una heurística genera una respuesta en menor tiempo que el tiempo exponencial, pero no garantiza una solución óptima.
CL-GRID III
a
b c
a
b
c
a
b
c
c
P1 P2 P1 P2
10
25
0
10
25
0
40
15
35c
40
50
x
x
x
Task Graph
Gantt Chart-2Gantt Chart-1
Task Exceution time
abc
101515
y
Arc Communication
(a,b) y
(a,c) x < y
x = 5 x = 25
30
Time TimeRetardo de Comunicación versus Paralelismo
Cuando el retardo de comunicación no puede ser despreciado, las heurísticas de scheduling
deben considerar el retardo de comunicación antes de asignar las tareas a los procesadores
Es posible que tareas listas con largos retardos de comunicación terminen siendo asignados al
mismo procesador que sus predecesores inmediatos.
Hay un compromiso entre tomar ventaja del máximo paralelismo y
minimizar el retardo de comunicación
CL-GRID III
Tamaño de la granularidad y Localidad de los datos
Otro tema cercanamente relacionado al compromiso entre paralelismo y retardo de la comunicación es el problema del tamaño de la granularidad.
El desafío es determinar el mejor tamaño de grano para cada nodo en un grafo de tareas representando el programa.
Un grano es definido como una o mas instrucciones secuenciales, empaquetadas juntas para hacer un módulo que es secuencialmente ejecutada en un solo procesador
CL-GRID III
Tamaño de la granularidad y Localidad de los datos El tamaño de un grano es alterado agregando o removiendo
instrucciones. Un grano puede ser tan pequeño como una sola operación o tan grande como un programa completo.
Si un grano es demasiado grande, el paralelismo es reducido ya que tareas potencialmente concurrentes son agrupadas juntas y ejecutadas secuencialmente por un procesador.
Por otro lado, cuando el tamaño del grano es demasiado fino, mas sobrecarga es agregado al tiempo de ejecución global en la forma de cambio de contexto, tiempo de asignación, y retardo de comunicación.
CL-GRID III
Algoritmo 6: Scheduling basado en prioridad
1. A cada nodo en el grafo de tareas se le asigna una prioridad. Una cola de prioridad es inicializada para tareas listas insertando cada tarea que no tenga predecesores inmediatos. Las tareas son ordenadas en orden decreciente de prioridades de tareas.
2. Con tal que la cola de prioridad no esté vacía hacer lo siguiente:
(a) Una tarea es obtenida del frente de la cola.
(b) Un procesador ocioso es seleccionado para correr la tarea usando el criterio de selección del procesador.
(c) Cuando todos los predecesores inmediatos de una tarea particular son ejecutados, ese sucesor está ahora listo para ser insertado en la cola de prioridades.
CL-GRID III
Clustering
La idea detrás de este tipo de scheduling heurístico es particionar el proceso de asignación en dos fases: Asignación del procesador: el cual es el
proceso de asignar las tareas en los procesadores del sistema
Ordenamiento de tareas: el cual es el proceso de scheduling las tareas asignadas en cada procesador.
CL-GRID III
Algoritmo 7
1. Una las tareas asumiendo un número no limitado de procesadores conectados completamente. Dos tareas en el mismo cluster son asignadas al mismo procesador.
2. Mapee los clusters y sus tareas en el numero dado de procesadores (m). En este paso, las siguientes optimizaciones son realizadas:
(a) Unir cluster: si el número de clusters es mayor que el número de procesadores disponibles, los clusters son unidos formando m clusters.
(b) mapeo físico: Si la arquitectura real no es completamente conectada. Un mapeo debe ser determinado tal que la comunicación entre clusters es minimizado.
(c) Ordenamiento de la ejecución de las tareas. Después que la asignación de las tareas a los procesadores está fijo, el ordenamiento de la ejecución es determinada para asegurar la dependencia de orden correcta entre tareas.
CL-GRID III
a
bc
g
d e
f
a
bc
g
d e
f
a
bc
g
d e
f
(a)(b)
(c)
a
bc
g
d e
f
(d)
Clustering Suponga que las tareas a, b, c, d, e, f y g pueden correr en cualquier procesador en un sistema distribuido en 1, 5, 1, 2, 2, 1 y 1 unidad de tiempo respectivamente.
Los retardos de comunicación entre tareas si son asignados a procesadores diferentes es mostrado en la siguiente figura
La figura también muestra 4 clustering diferentes del grafo de tareas:
Los dos clusters de la figura (a) asignados a dos procesadores se ejecutan en 9 unidades de tiempo
Los dos clusters de la figura (b) asignados a dos procesadores se ejecutan en 10 unidades de tiempo
CL-GRID III
Tiempos de retardo de comunicación entre tareas
CL-GRID III
Clusters del Caso (a)
5
1
1
2 2
1
1
1
2
CL-GRID III
Clusters del Caso (b)
5
1
1
2
2
1
1
1
1
CL-GRID III
Clusters del Caso (c) y (d)
Los tres clusters de la figura (c) asignados a tres procesadores se ejecutan en 10 unidades de tiempo
Los tres clusters de la figura (c) asignados a tres procesadores se ejecutan en 10,5 unidades de tiempo
CL-GRID III
Duplicación de Tareas
La duplicación de tareas puede ser usada en scheduling heurístico para reducir el efecto del retardo de la comunicación.
Ya que el costo del paso de mensajes entre procesadores diferentes es significativamente mas alto que dentro del mismo procesador, el objetivo es reducir el intercambio de mensajes entre tareas asignadas a procesadores diferentes. La idea es ejecutar múltiples copias de la tarea emisora en los procesadores corriendo las tareas receptoras cuando sea necesario.
CL-GRID III
a
b c
a
b c
a
b
c
P1 P2 P1 P2
xx
Task Graph
x
a
No Duplication Task a is Duplicated
Duplicación de Tareas
CL-GRID III
Aplicación: Simulación de Circuitos Electrónicos Integrados
CL-GRID III
Aplicación: Paralelismo Espacial Jerárquico
CL-GRID III
Aplicación: Paralelismo Temporal
CL-GRID III
Asignación de sub-circuitos en un cluster de anillo con 4 procesadores
Una heurística puede
asignar prioridades basado
en la longitud de la ruta
mas larga a un nodo
terminal en un grafo de
tareas
CL-GRID III
Implementación del scheduling
CL-GRID III
Paralelismo en 3 niveles
CL-GRID III
Colo Colo Campeón de la
Sudamericana 2006
Gracias