Projet ANR-13-INFR-0001 – MOEBUS : Gestion de ressources multi-objectifs pour plates-formes de calcul à large échelle
Programme : Infrastructures matérielles et logicielles pour la société numérique (INFRA) 2013
Année de financement : 2013
Coordinateur du projet : Monsieur Denis TRYSTRAM (Institut Polytechnique de Grenoble)
Partenaires : BULL SAS; Inria Centre Bordeaux - Sud-Ouest; Inria Centre Grenoble - Rhône-Alpes; Grenoble INP
Montant : 393923.0 euros
Date de début : 2013
Durée : 36 mois
Résumé : L'évolution constante des plates-formes de calcul induit un domaine de
recherche large et dynamique. Les systèmes parallèles et distribués
les plus courants sont les clusters, les grilles de calculs, et les
fermes de calculs hébergeant de large systèmes hiérarchiques et
multi-coeurs. Une des caractéristiques communes à ces systèmes est la
difficulté croissante à gérer efficacement les travaux soumis et les
ressources. Cette complexité provient à la fois des différentes
caractéristiques matérielles (l'hétérogénéité des composants, les
différents niveaux de hiérarchie, etc.) et des applications (toujours
plus complexes, plus grandes, plus versatile, etc.). Ce projet porte
sur l'exécution efficace d'applications parallèles soumises par
différents utilisateurs et partageant des ressources dans un
environnement de calcul haute performances à large échelle.
Dans les grands centres de calcul, les plates-formes sont de plus en
plus composées de ressources de calcul hétérogènes inter-connectés par
des liens de communication rapides (par exemple des multi-coeurs
standards couplés à des coprocesseurs spécialisés tels les GPUs).
Ces ressources sont utilisées par de nombreux utilisateurs et
applications qui ont chacun leur propres objectifs et besoins, qui
parfois entrent en conflit. Pour fournir simultanément à chacun la
puissance de calcul requise, des suites logicielles ont été
développées qui allouent les tâches aux ressources disponibles. Les
logiciels de gestion de ressources avec exécution par lots fournissent
des mécanismes pour gérer et allouer les ressources (en soumettant les
tâches, en les exécutant, et parfois en suivant le déroulement de
l'exécution), tandis que d'autres tentent de mieux exploiter les
ressources allouées à un utilisateur ou une application (en essayant
par exemple de placer les différents processus d'une application de
sorte à minimiser les communications). En effet, l'utilisation des
ressources peut avoir un impact critique sur l'ensemble du système et
doit donc être optimisé. L'évolution constante des matériels crée de
nouvelles caractéristiques qui soulèvent des défis scientifiques
novateurs et complexes pour la gestion et l'exploitation des
ressources. Cela rend les logiciels dédiés plus complexes que jamais
(comme le gestionnaire de tâches, les spécifications de
programmations).
Nous proposons d'étudier les nouvelles fonctionnalités pour améliorer
les gestionnaires de ressources à large échelle actuels ainsi que les
standards de programmation, pour un meilleure usage des ressources
suivant différents critères d'évaluation. La solution actuelle
d'utiliser différentes queues de priorité dans les ordonnanceurs par
lots en production n'est clairement pas la meilleure puisque cela
donne un priorité arbitraire à certaines tâches (ou ressources) qui
peuvent avoir en retour un impact négatif sur les autres tâches. Nous
proposons de revoir les principes des ordonnanceurs actuels après
avoir étudié les principaux facteurs ayant un impact dans la
soumission des tâches. Ensuite, nous proposerons de nouveaux
algorithmes efficaces pour optimiser l'ordonnancement selon des
critères non conventionnels tel que la consommation énergétique, et
nous concevrons des algorithmes d'approximation multi-objectif pour
les combinaisons d'objectifs les plus pertinentes (performance,
équité, consommation énergétique, etc.). Un atout de ce projet est
l'équilibre entre l'analyse théorique et l'implémentation en
pratique. Les idées les plus prometteuses seront intégrées dans des
suites logicielles de référence telles que SLURM et OAR, ainsi que
comme de nouvelles fonctionnalités dans les standards de programmation
comme MPI ou OpenMP. Nous attendons de MOEBIUS des résultats ayant un
impact sur le futur des plates-formes parallèles à large échelle.