Energie ou performance : impact de l'implémentation sur la consommation

Le besoin en puissance de calcul concerne de plus en plus de domaines tels que la biologie, la météorologie, l’astrophysique … Les applications sont exécutées sur des supercalculateurs avec de grandes capacités de calcul.

La puissance de calcul qui vient avec les supercalculateurs est souvent liée à une forte consommation énergétique. En effet, Frontier, le super calculateur le plus puissant au monde (Top500) consomme 21MW (40MW en considérant tout le système de refroidissemnt). Ceci est équivalent à la consommation d’une ville américaine d’environ 12000 foyers.

Frontier

De plus en plus de travaux se concentrent sur la réduction de la puissance et/ou de l'énergie consommée. Ces travaux se basent sur la modification de paramètres de l’architecture qui impactent directement la puissance et l'énergie (telle que la fréquence des processeurs [1,2,3]). Cependant, pour que la consommation soit la plus optimale possible, une fine connaissance de l’application est nécessaire.

Dans ce stage, nous nous proposons de ne pas modifier les paramètres de l’architecture (nous utilisons la configuration par défaut). Nous allons plutôt profiter de notre expertise sur certaines applications pour étudier leur comportement énergétique. Plus précisément, afin d’avoir la connaissance la plus fine possible, nous allons utiliser des noyaux de calcul qui représentent des opérations de base (telle qu’une multiplication matricielle). Ces noyaux de calcul seront des opérations d’algèbre linéaire dense ou creuse. Ces opérations sont au coeur de la majorité des applications de simulation numérique utilisées sur les supercalculateurs.

Il existe plusieurs bibliothèques qui implémentent ces noyaux et au sein d’une même bibliothèque, plusieurs implémentations sont possibles. Par exemple, selon le besoin, une implémentation en précision simple peut suffire, alors que dans d’autres cas, la double précision est nécessaire. L’impact des différentes implémentations d’un même noyau de calcul est très peu étudiée dans la littérature lorsque l’on s’intéresse à la consommation énergétique.

Le but de ce stage est donc d'étudier, pour un noyau donné, l’impact des différentes implémentations à la fois sur les performances et l'énergie consommée. Les différentes versions concerneront la vectorisation, la précision, la représentation des données, etc. L’idée est de voir, selon la nature du noyau, si les performances dominent la consommation d'énergie (en d’autres termes, est-ce qu’aller plus vite suffit à réduire la consommation d'énergie ou alors est ce que le compromis est plus difficile à trouver).

Le stage commencera par une prise en main de la ou des plates-formes utilisées pour les expériences (plafrim ou grid5000) ainsi que des différents outils de mesure. En parallèle, les noyaux de calcul ciblés seront étudiés avant de commencer l'étude à proprement parlé. Les travaux effectués dans ce stage s’articuleront autour de deux plates-formes logicielles : StarPU (un support d’exécution développé au sein de l'équipe STORM et Chameleon (une bibliothèque d’algèbre linéaire développée au sein des équipes CONCACE et TOPAL).

Mots-clés:

Pré-requis:

  • Programmation C
  • Programmation parallèle
  • Linux, bash

Contacts :

Lieu du stage :

Inria de l’université de Bordeaux, Talence

Référence:

[1] B. Rountree, D. K. Lownenthal, B. R. de Supinski, M. Schulz, V. W. Freeh, and T. Bletsch, “Adagio: making dvs practical for complex hpc applications,” in ICS, 2009, pp. 460–469. [2] Gholkar, N., Mueller, F., Rountree, B.: Uncore power scavenger: A runtime for uncore power conservation on hpc systems. In: SC’19 (2019). [3] André, É, Dulong, R, Guermouche, A, Trahay, F. duf: Dynamic uncore frequency scaling to reduce power consumption. Concurrency Computat Pract Exper. 2022; 34( 3):e6580.