Scheduling Jobs Under a Variable Number of Processors
Ordonnancement de tâches avec un nombre variable de processeurs
Résumé
Even though it is usually assumed that data centers can always operate at maximum capacity, there have been recent scenarios where the amount of electricity that can be used by data centers evolve over time. Hence, the number of available processors is not a constant anymore. In this work, we assume that jobs can be checkpointed before a resource change. Indeed, in the scenarios that we consider, the resource provider warns the user before a change in the number of processors. It is thus possible to anticipate and take checkpoints before the change happens, such that no work is ever lost. The goal is then to maximize the goodput and/or the minimum yield of jobs within the next section (time between two changes in the number of processors). We model the problem and design greedy solutions and sophisticated dynamic programming algorithms with some optimality results for jobs of infinite duration, and adapt the algorithms to finite jobs. A comprehensive set of simulations, building on real-life job sets, demonstrates the performance of the proposed algorithms. Most algorithms achieve a useful platform utilization (goodput) of over 95%. With infinite jobs, the algorithms also keep fairness by having a relative minimum yield above 0.8, meaning that each job gets a good access to the platform (80% of the time that it would have had if each job had its perfect share of the platform). For finite jobs, the minimum yield can be low since very short new jobs may have to wait until the beginning of the next section to start (and finish), significantly impacting their yield. However, for 75% of the jobs within each workload, the yield ratio between these jobs is at most at a factor two, hence demonstrating the fairness of the proposed algorithms.
Même si l'on part généralement du principe que les centres de calcul peuvent toujours fonctionner à leur capacité maximale, des scénarios récents ont montré que la quantité d'électricité pouvant être utilisée par les centres de calcul évolue au fil du temps. Par conséquent, le nombre de processeurs disponibles n'est plus une constante. Dans ce travail, nous supposons que les tâches peuvent être sauvegardées avant un changement de ressources. En effet, dans les scénarios que nous considérons, le fournisseur de ressources avertit l'utilisateur avant un changement du nombre de processeurs. Il est donc possible d'anticiper et d'effectuer une sauvegarde avant que le changement ne se produise, de sorte qu'aucun travail ne soit jamais perdu. L'objectif est alors de maximiser l'utilisation de la plateforme (goodput) et/ou l'avancement minimum (yield) des tâches au cours de la section suivante (temps entre deux changements du nombre de processeurs). Nous modélisons le problème et concevons des solutions gloutonnes et des algorithmes de programmation dynamique sophistiqués avec certains résultats d'optimalité pour les tâches de durée infinie, puis nous adaptons ces algorithmes aux tâches de durée finie. Un ensemble de simulations utilisant des tâches réalistes démontre les performances des algorithmes proposés. En effet, la plupart des algorithmes atteignent une utilisation utile de la plateforme (goodput) supérieure à 95%. Avec des tâches infinies, les algorithmes maintiennent également l'équité en ayant un avancement minimum (yield) relatif supérieur à 0.8, ce qui signifie que chaque tâche bénéficie d'un bon accès à la plateforme (80% du temps dont elle aurait disposé si chaque tâche avait eu sa fraction parfaite de la plateforme). Pour les tâches finies, l'avancement minimum peut être faible, car les nouvelles tâches très courtes peuvent devoir attendre le début de la section suivante pour démarrer (et se terminer), ce qui a un impact significatif sur leur avancement. Cependant, pour 75% des tâches, le rapport de l'avancement entre ces tâches est au maximum de deux, ce qui montre l'équité des algorithmes proposés.
| Origine | Fichiers produits par l'(les) auteur(s) |
|---|---|
| Licence |