Locality-aware batch scheduling of I/O intensive workloads
Ordonnancement de charges de travail intensives en entrées-sorties par lot utilisant la localité des données
Résumé
Clusters make use of workload schedulers such as
the Slurm Workload Manager to allocate computing jobs onto
nodes. These schedulers usually aim at a good trade-off between
increasing resource utilization and user satisfaction (decreasing
job waiting time). However, these schedulers are typically unaware
of jobs sharing large input files, which may happen in data
intensive scenarios. The same input files may be loaded several
times, leading to a waste of resources.
We study how to design a data-aware job scheduler that is
able to keep large input files on the computing nodes, without
impacting other memory needs, and can use previously loaded files to
limit data transfers in order to reduce the waiting times of
jobs.
We present three schedulers capable of distributing the load between
the computing nodes as well as re-using an input file already loaded
in the memory of some node as much as possible.
We perform simulations using real cluster usage traces to compare
them to classical job schedulers. The results show that
keeping data in local memory between successive jobs and using data
locality information to schedule jobs allows a reduction in job
waiting time and a drastic decrease in the amount of data transfers.
Les plateformes de calculs utilisent des planificateurs de charges
de travail comme le Slurm Workload Manager pour allouer
des travaux aux nœuds de calcul. Ces ordonnanceurs visent à équilibrer
l'utilisation des ressources et la satisfaction des utilisateurs
(réduire le temps d'attente). Cependant, ces ordonnanceurs ne
sont pas conscients des travaux partageant des fichiers d'entrée volumineux.
Dans certaines situations, la quantité de tels travaux peut être importante.
Le même fichier d'entrée peut être chargé plusieurs fois,
menant à une perte de ressources.
Nous étudions la création d'un ordonnanceur de travaux utilisant la localité
des données capable de garder de larges fichiers d'entrées sur les
nœuds de calculs tout en préservant les autres besoins en mémoire,
et également capable de réutiliser des fichiers déjà chargés afin de limiter
les transferts de données et ainsi réduire le temps d'attente
des travaux.
Nous présentons trois ordonnanceurs capables de distribuer la
charge entre les nœuds de calculs ainsi que de réutiliser
le plus possible
les fichiers d'entrées déjà chargés en mémoire de certains nœuds.
Nous avons effectué des simulations en utilisant l'historique
d'une vraie plateforme de calcul afin de comparer nos algorithmes à
des ordonnanceurs classiques. Les résultats montrent que garder
des données en mémoire entre des travaux successifs et utiliser
la localité des données pour ordonner les travaux permettent une réduction
du temps d'attente des travaux et une diminution drastique de
la quantité de transferts de données.
Origine | Fichiers produits par l'(les) auteur(s) |
---|