1 / 62

Scheduling en un ambiente Paralelo

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

iona-daniel
Download Presentation

Scheduling en un ambiente Paralelo

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Scheduling en un ambiente Paralelo Carlos Pon Soto Departamento de Ingeniería de Sistemas y Computación Universidad Católica del Norte

  2. 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

  3. 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

  4. Sistema de Scheduling Consumidores Scheduler Recursos Política

  5. 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

  6. Diseño Metodológico

  7. Enfoque explícito Programa Enfoque Implícito Secuencial Analizador Dependencia Granos de Ideal Código secuencial Parallelism Tareas Particionador del programa Paralelo Tareas del programa Sistema paralelo/distribuido Scheduler Procesadores tiempo Schedule Scheduling Tareas Paralelas

  8. 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)

  9. A 10 Grafo de Tareas 5 5 5 8 7 B C D E F 15 10 15 10 20 5 5 5 4 4 G H 15 15 20 5 10 I 30

  10. 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

  11. 1 2 6 3 5 4 Anillo Ejemplos de Máquinas Arreglo Lineal Completamente conectado Malla

  12. 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 [0,infinito] f(v) = (i,t)  tarea v es asignada a ser procesada por el procesador i comenzando en el tiempo t

  13. Carta Gantt

  14. Carta Gantt con Comunicación

  15. 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

  16. 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 schedule vs. Quality of the scheduler

  17. Scheduling Tareas del Grafo sin considerar los costos de la comunicación • Algoritmos óptimos de orden Polinomial en los siguientes casos: • Grafo de tareas es in-forest o out-forest • Grafo de tareas es un intervalo ordenado • Solamente dos procesadores

  18. 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

  19. 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.

  20. Scheduling grafo de tareas in-forest/out-forest • 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) • El nivel de cada nodo en el grafo de tareas es calculado como se dice anteriormente y es usado como prioridad de cada nodo • Cuando un procesador llega a estar disponible, asignele la tarea lista no ejecutada con la mas alta prioridad

  21. 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 Ejemplo

  22. Scheduling tareas ordenadas por intervalo • El número de sucesores de cada nodo es usado como la prioridad de cada nodo • Cuando un procesador llega a estar disponible, asigne a éste la tarea lista sin ejecutar con la mas alta prioridad

  23. 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. Ejemplo

  24. Scheduling de dos procesadores • Asigne 1 a una de las tareas terminales. • 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. • Use L(v) como la prioridad de la tarea v y los empates se resuelven arbitrariamente. • 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.

  25. 2 1 3 1 1 1 4 1 5 1 6 7 1 1 10 8 11 9 1 1 1 1 12 13 14 1 1 1 15 16 17 1 1 1 15 16 17 14 Ejemplo 13 11 12 10 9 7 8 5 6 4 1 2 3

  26. 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

  27. 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

  28. 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.

  29. Ejemplo A 1 B C D E 1 1 1 1 Asuma un sistema con 2 procesadores

  30. P1 P2 A B C D E 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 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

  31. 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 P1 P2 0 A 1 B 2 C D 3 E 4 Retardo de Comunicación

  32. Algoritmos óptimos con Comunicación • Intervalos ordenados sobre n procesadores • In-forests / out-forests en dos procesadores

  33. Pasos del algoritmo principal Grafo de Tareas Agregar nuevo arco para compensar por la comunicación Grafo de Tareas Aumentado Schedule (correcto) Schedule el grafo aumentado usando el algoritmo de Hu Hacer correciones de Asignaciones Schedule (correct length)

  34. Definiciones Profundidad del Nodo 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) = f. Operación Swapall 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

  35. Algoritmo 4 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

  36. 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.

  37. 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.

  38. 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

  39. 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 f. Note que la prioridad de la tarea vacía es menor que la prioridad de cualquier otra tarea.

  40. Algoritmo • El número de todos los sucesores de cada nodo es usado como la prioridad de cada nodo. • Los nodos con la mas alta prioridad son asignados primero. • Cada tarea v es asignada al procesador Pi con el tiempo de inicio mas temprano. • 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).

  41. Ejemplo

  42. Algoritmos heurísticos • Una heurística genera una respuesta en menor tiempo que el tiempo exponencial, pero no garantiza una solución óptima.

  43. Hay un compromiso entre tomar ventaja del máximo paralelismo y minimizar el retardo de comunicación Retardo 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.

  44. 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

  45. 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.

  46. 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.

  47. 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.

  48. Algoritmo 7 • Una las tareas asumiendo un número no limitado de procesadores conectados completamente. Dos tareas en el mismo cluster son asignadas al mismo procesador. • 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.

  49. 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

  50. Tiempos de retardo de comunicación entre tareas

More Related