Prédiction frugale de la charge d’un supercalculateur pour réduire son impact énergétique

Keywords

prédiction, charge, hpc, ordonnancement, incertitude, énergie

Encadrants

Millian Poquet, Georges Da Costa

Contexte

Dans le monde du calcul à haute performance, un supercalculateur est une plateforme de calcul utilisée par de nombreux utilisateurs pour y exécuter des applications, notamment pour lancer des campagnes de simulations scientifiques à grande échelle. Les supercalculateurs récents peuvent avoir un nombre très grand de ressources (de l’ordre du million de cœurs) et les utilisateurs n’accèdent donc pas directement aux ressources ; ils passent par l’intermédiaire d’un gestionnaire de ressources (comme SLURM[1]) pour réserver des nœuds/cœuds de calcul et pour y exécuter des applications.

Les gestionnaires de ressources peuvent prendre de nombreuses décisions sur l’exécution des applications (quand les exécuter, sur quelles ressources) mais également sur les ressources elles-mêmes (à quelle fréquence les processeurs doivent tourner, quand éteindre ou allumer des ressources). L’optimisation du comportement du supercalculateur est donc contrôlable en faisant varier les algorithmes utilisés par le gestionnaire de ressources.

Sepia[2] est une équipe de recherche de l’IRIT[3] située sur le campus de l’Université Paul Sabatier qui s’intéresse à l’optimisation énergétique des plateformes de calcul distribuées. Nous souhaitons mettre en place une politique d’extinction des nœuds d’un supercalculateur qui permette de réduire l’énergie dépensée par le supercalculateur, avec la contrainte de gêner le moins possible les utilisateurs du supercalculateur. Le temps d’allumage d’un nœud de calcul n’est pas instantané (cela prend une dizaine de minutes), il est donc important de garder un nombre suffisant de nœuds allumés pour pouvoir exécuter le plus tôt possible les applications lorsqu’elles sont soumises par les utilisateurs. Laisser trop de nœuds allumés a cependant un impact énergétique, puisqu’un nœud qui ne fait rien consomme beaucoup plus d’énergie qu’un nœud éteint. Nous pensons qu’avoir une prédiction de la charge à venir du supercalculateur est crucial pour concevoir des politiques robustes d’extinction de nœud, le but de ce projet est donc de concevoir un tel système de prédiction.

Objectifs attendus du projet

L’objectif général de ce projet est de concevoir un système de prédiction de la charge d’un supercalculateur.

La qualité de ce système sera évaluée sur différents objectifs :

  1. Qualité des prédictions faites par le système à différents horizons temporels (10 minutes, 30 minutes, 1 heure)
  2. Coût énergétique du système, que ce soit en phase d’apprentissage ou lors de l’utilisation pour chaque prédiction
  3. Compréhensibilité de la méthode choisie, du modèle entraîné et des résultats

Nous sommes pour cela intéressés par étudier les compromis que permettent d’obtenir différentes techniques de machine learning sur ce problème. Les techniques qui permettent non seulement de prédire une valeur de charge mais aussi d’y associer une valeur d’incertitude nous intéressent particulièrement, puisque cette incertitude est importante pour prendre des décisions robustes. Idéalement le système sera capable d’estimer la probabilité que la charge soit pour un horizon donné (e.g., dans 10 minutes) dans un intervalle de charge donné (e.g., entre 10 et 50 heure*cœur).

Nous comptons nous baser sur les traces de la Parallel Workload Archive[4] comme source de données pour ce projet. Des problèmes d’apprentissage connexes au problème de ce projet ont été étudiés dans la littérature et pourront être utilisés, par exemple sur la prédiction du temps d’exécution des applications[5,6].

Biblio

[1] https://slurm.schedmd.com/overview.html [2] https://www.irit.fr/departement/architecture-systemes-reseaux/equipe-sepia/ [3] https://www.irit.fr/ [4] https://www.cs.huji.ac.il/labs/parallel/workload/logs.html [5] https://hal.archives-ouvertes.fr/hal-03023222 [6] https://hal.archives-ouvertes.fr/hal-01221186