Professional Documents
Culture Documents
0.- Introduccin
La planificacin de trabajos tiene como objeto, proporcionar una utilizacin ms
eficiente de los recursos computacionales, a travs de polticas que determinan
los criterios de eleccin de los trabajos a ser ejecutados. El paradigma de
programacin utilizado para construir la aplicacin, tiene una especial
relevancia a la hora de aplicar criterios de planificacin (MPI, openMP,
MapReduce, Pig, Latin, etc) . Las aplicaciones construidas bajo el paradigma
de paso de mensaje en clusters (MPI), habitualmente son planificadas
siguiendo el modelo esttico, donde la planificacin se realiza antes de la
ejecucin; en tiempo de carga o compilacin.
Como es sabido, la planificacin de aplicaciones en un cluster ocurre a dos
niveles: Planificacin Espacial donde se decide en qu procesadores se
ejecutarn los trabajos, y Planificacin Temporal que define la poltica de
planificacin especfica en cada procesador individual decidiendo como se
ejecutarn los trabajos en cada nodo en particular. La figura 1.1 presenta una
taxonoma para el proceso de planificacin de trabajos en clusters.
Figura 1.10: Esquema de tipo buddy aplicado al reparto del recurso memoria.
Si el grado de multiprogramacin (MPL) en un nodo puede ser mayor que uno,
estamos ante polticas que llamaremos de seleccin. Un ejemplo de este tipo de
polticas se observa, cuando el sistema de espacio compartido se combina con un
sistema de tiempo compartido. En este caso, la poltica de seleccin de nodos requiere
de algn criterio extra para tomar una decisin, como puede ser la cantidad de
memoria disponible en un nodo dado.
Las polticas definidas en la figura 1.13 ordenan los trabajos como sigue:
FCFS (First Come First Served): en este caso los trabajos son tratados
(ejecutados) en el orden en que llegan al sistema. Esta poltica es muy sencilla
de implementar, pero normalmente no hace el mejor uso de los recursos ni
maximiza la eficiencia de ninguna mtrica especfica. Sin embargo es la que
normalmente se utiliza como referencia para las comparaciones realizadas con
otras alternativas, ya que de alguna manera da una cota inferior con la que
comparar otras opciones.
Cabe destacar, sin embargo, que este criterio es el ms justo con respecto al
orden de ejecucin de los trabajos, ya que asegura que ninguno deber
esperar por otro que haya llegado ms tarde al sistema. Adems se encuentra
libre de la posibilidad de inanicin.
SJF (Shortest Job First): bajo este criterio los trabajos se ordenan de forma
creciente en funcin del tiempo de ejecucin (estimado). Este tipo de polticas
disminuyen el tiempo de turnaround promedio de la carga (makespan), pero
pueden provocar inanicin a las aplicaciones ms largas, si continuamente
llegan al sistema aplicaciones pequeas. Adems las aplicaciones paralelas
deben ser enviadas al sistema junto con una estimacin de su tiempo de
ejecucin para una determinada cantidad de procesadores. La necesidad de
esta estimacin implica un mayor conocimiento de la aplicacin por parte del
usuario. Alternativamente, el sistema puede ser capaz de estimarlo de alguna
manera (ej.: utilizando simulacin o registros histricos
SNPF (Smallest Number of Processes First): con este criterio, los trabajos
se ejecutan en orden creciente de la cantidad de procesos (procesadores) que
se ejecutan.
SCDF (Smallest Cumulative Demand First): haciendo uso de este criterio,
los trabajos son ordenados de forma creciente de acuerdo al producto de la
cantidad de procesadores solicitados, y el tiempo de ejecucin estimado.
Finalmente, es posible alterar esta poltica de ordenamiento dinmicamente, de
manera que en distintos momentos en el tiempo, se utilicen diferentes polticas
para realizar la planificacin
First Fit: con este tipo de polticas se recorre la cola de trabajos hasta
encontrar el primero que quepa en el espacio de procesadores, de acuerdo con
el estado en que se encuentran. Se indica que para varios modelos de carga
distintos, este criterio ha dado mejores resultados al combinarse con polticas
de ordenamiento de tipo FCFS o SJF, que utilizando dichas polticas por
separado. Cabe destacar que en el caso de la poltica SJF no hay diferencia en
cuanto a si se aplica o no el esquema First Fit ya que el primer trabajo en la
cola siempre es el ms pequeo y por lo tanto ser el seleccionado en
cualquier caso.
Best Fit: bajo este criterio de seleccin se busca en la cola, el trabajo cuyos
requerimientos se aproximen ms al conjunto de recursos actualmente
disponibles en los nodos. De esta manera lo que se busca es minimizar los
efectos producidos por la fragmentacin intentando aumentar el nivel de
utilizacin de los recursos disponibles. Se indica en trabajos que este tipo de
polticas mejora el rendimiento de polticas como Worst Fit (seleccionan el
trabajo que maximiza los recursos libres), en lo referente al throughput del
sistema.
Just First: esta poltica es parte de las definiciones dadas en el presente
trabajo y solamente intenta ejecutar el primer trabajo de la cola. De no ser
posible, se ha de esperar un nuevo evento de planificacin para intentar lanzar
un trabajo.
Este criterio en s mismo no aporta flexibilidad al entorno de planificacin, pero
es sin embargo necesario para implementar criterios como por ejemplo, una
poltica FCFS estricta. La alternativa a las polticas anteriores en el momento
de seleccionar un trabajo para su ejecucin es la de estimar el estado futuro e
intentar mejorar el rendimiento del sistema considerando tal estimacin. A este
respecto dos alternativas que se han estudiado en la literatura son la Calidad
de Servicio (QoS) y el Backfilling.
La primera de las ideas (QoS) busca garantizar un conjunto de recursos
durante un tiempo limitado como parte de los requerimientos de una aplicacin
para poder ejecutarse. Estudios en este sentido se han aplicado, por ejemplo,
en entornos multimedia y de tiempo real. La segunda alternativa, la poltica de
backfilling, es sin lugar a dudas una de las tcnicas de planificacin espacial
que ms atencin ha recibido en la literatura. Dicho esquema se basa en el
siguiente criterio: un trabajo puede ejecutarse, antes que otros que se
encuentran en la cola de espera por delante (ms prioritarios), siempre y
cuando esto no retrase el tiempo de inicio de dichos trabajos. Un ejemplo de
este tipo de polticas puede observarse en la figura 1.16, donde para un
conjunto de trabajos (J0J4) planificados mediante una poltica de orden de
trabajos FCFS (figura 1.16.a), es posible introducir una mejora planificando el
trabajo J4 inmediatamente despus del J0 (figura 1.16.b). Tal modificacin es
provechosa, porque ninguno de los trabajos ms prioritarios que J4 (J0J3) se
ven perjudicados por tal asignacin. De esta forma es posible incrementar el
uso de recursos en el sistema, a la vez que el tiempo medio de espera de las
aplicaciones se ve reducido.
En la prctica dos variantes del esquema bsico son las que normalmente se
aplican y sobre las que se han realizado distintos tipos de aportaciones en la
literatura:
Backfilling EASY: bajo este esquema, tambin conocido como backfilling
agresivo, un trabajo siempre puede adelantarse en la cola si esto no retrasa el
inicio del trabajo que se encuentra en la cabeza.
Backfilling Conservativo: con este criterio un trabajo slo puede adelantarse
en la cola si no retrasa a ninguno de los trabajos que se encuentran por
delante.
De entre los dos tipos de backfilling presentados, los trabajos que ms
procesadores requieren (altura de los trabajos en la figura 1.16), se ven
favorecidos por un esquema conservativo, debido a las reservas dadas en el
momento de la entrada al sistema.
Por otra parte, los trabajos que requieren un mayor tiempo de ejecucin
(anchura de los trabajos en la figura 1.16) se ven favorecidos por una poltica
agresiva, ya que en sta se da una mayor flexibilidad en el espacio de
procesadores para ubicar trabajos de este tipo. Para los trabajos ms
proporcionados (altura por ancho) no es clara la preferencia sobre uno u otro
esquema, y por lo tanto cualquiera puede utilizarse esperando rendimientos
semejantes.
planificar de forma conjunta los procesos cooperantes; opinin que es compartida por
un gran nmero de fabricantes e investigadores.
Matriz de Ousterhout. En este algoritmo se define una matriz formada por un eje
temporal de CMV filas (cada una de las cuales define una Mquina Virtual con una
potencia de cmputo igual a PC (Pi)/ CMV, donde PC (Pi) es la potencia de cmputo
del procesador Pi), tal que CMV equivale al grado de multiprogramacin de las
aplicaciones paralelas (MPL). El otro eje de la matriz, es un eje espacial de
N columnas, donde N es el nmero de procesadores disponibles en el sistema. En la
matriz de Ousterhout, cada columna define los procesos (Jpk) asignados a un
procesador dado (Pi), mientras que cada fila define tanto los trabajos (Ji) que sern
ejecutados durante un periodo (quantum) de tiempo determinado (TSi ), como el
mapping de los procesos que integran dichos trabajos a los correspondientes
procesadores.
A modo de ejemplo, la figura 1.5 muestra una matriz con seis procesadores
(N = 6) y un grado de multiprogramacin de 4 (CMV = MPL = 4). De esta manera cada
vez que se ha de asignar un nuevo trabajo (Ji) al sistema se busca, comenzando por
la fila cero, una fila con igual nmero de celdas libres que procesos tenga el trabajo a
ser asignado. Una vez asignado dicho trabajo, el algoritmo utiliza un mecanismo de
round-robin para planificar las diferentes filas de la matriz. De este modo, teniendo en
cuenta el ejemplo de la figura 1.5, durante el quantum de tiempo TS0 se ejecutarn los
procesos pertenecientes a los trabajos J1 y J2, de manera que al analizar dicho
quantum se producir un cambio de contexto global, de modo que el trabajo J3 ser
planificado en los procesadores P0, P1, P2, P3 y P4 durante el siguiente quantum TS1, y
as sucesivamente.
Numerosos autores han utilizado el trmino Gang Scheduling (GS) para referirse a la
necesidad de coplanificacin de las aplicaciones paralelas. Feitelson define
Gang scheduling como un esquema de planificacin que combina las tres
caractersticas siguientes:
1. Las tareas son organizadas en grupos, considerando en la mayora de los casos
una aplicacin distribuida como un nico grupo.
2. Las tareas dentro de cada grupo son ejecutadas simultneamente en distintos
nodos, asignando una tarea de cada grupo a un nodo distinto.
3. La tcnica de tiempo compartido es utilizada para compartir cada nodo entre los
distintos grupos, de manera que todas las tareas dentro de un grupo son planificadas
simultneamente a lo largo de la mquina paralela. Acorde con esta definicin, se
desprende que el trmino de gang scheduling se puede considerar un sinnimo del
concepto de coplanificacin definido por Ousterhout. De este modo, a lo largo de esta
tesis ambos trminos sern tratados como tales.
Un segundo modo de entender la coplanificacin, ms flexible que la anterior
propuesta de Ousterhout, fue propuesto por Sobalvarro como sigue: la Coplanificacin
asegura que ningn proceso esperar a un proceso cooperante debido a eventos de
comunicacin y sincronizacin. La principal diferencia respecto a la definicin dada por
Ousterhout, radica en el hecho de que no todos los procesos que integran una
aplicacin deben estar coplanificados, sino que solamente se deben coplanificar
aquellos procesos que estn cooperando en un determinado instante de tiempo.
De acuerdo con las dos definiciones anteriores, muchas han sido las contribuciones
aportadas en la literatura con el objetivo de implementar la coplanificacin de
aplicaciones paralelas en entornos cluster, tanto dedicados como no dedicados. Cada
mtodo propuesto puede clasificarse en: explcito, implcito o hbrido, en funcin de la