Calcul de l'empreinte carbone de l'utilisation du cluster

Bonjour,

Je cherche à calculer mon utilisation du cluster pour un projet inferscerevol. Je cherche notamment à estimer le nombre total d'heures de calcul que j'ai pu faire. Mon objectif est de calculer l'empreinte carbone de mon projet (en passant par une approximation via le calculateur: https://calculator.green-algorithms.org/) et de le mettre dans les remarques de mon papier :slight_smile:

J'ai pensé faire un sreport mais ca me met que je n'ai fait aucun calcul.
Voilà ce que je tente: sreport job sizesbyaccount All_Clusters account=inferscerevol Utilization CPUTime start=2020-06-25T00:00:00 end=2024-03-25T00:00:00

Serait-il possible d'avoir ce genre d'information ?
Pour précision, c'est principalement un collaborateur qui est en thèse avec moi qui a lancé les jobs. Donc je cherche le nombre de jobs que moi et les étudiants nous avons lancé. Peut être qu'on a oublié une option dans les fichiers slurm etc. et auquel cas tant pis mais sauriez vous comment faire pour que dans l'avenir je puisse faire ce genre d'estimation ?

Merci d'avance
Fanny Pouyet

2 « J'aime »

Bonjour Fanny,

Super initiative !

Sur l'IFB, l'utilisation de compte (inferscerevol) permets une comptabilité par "projet" (tant que le compte est utilisé: soit par défaut, soit via l'option --account=inferscerevol ou -A inferscerevol lors de la soumission de job).

En revanche, nous avons des doutes sur la base d'accounting (stats) de Slurm (au moins avant 2023), qui fait qu'on est pas confiant sur les chiffres renvoyés. Nous cherchons la solution la plus appropriée (sreport, sacct, status_bars) pour avoir ce genre d'infos et on reviens vers vous.

J'attire également votre attention sur le fait que le calculateur de GreenAlgorithm (https://calculator.green-algorithms.org/) ne prends en compte que la phase d'usage (consommation électrique). Ce qui est très utile pour avoir une estimation (avant ou à la fin d'un projet). Mais il y a aussi une part important dû à la fabrication des équipements qui peut multiplier l'empreinte carbone par 2, 3 voire 4.
Nous avons commencé à traiter le sujet pour l'IFB mais devons encore travailler la question.

1 « J'aime »

Ah oui oui l'utilisation c'est genre 20% de l'empreinte carbone d'un objet et sa fabrication/recylage compte pour 80% d'après l'ADEME! Je veux juste en parler même si la facon dont je l'aborde à des biais :slight_smile: . L'idée est d'avoir un ordre de grandeur !

Merci de regarder ca!! J'espère que ca en interessera d'autres que moi :wink:

2 « J'aime »

Bonjour Fanny,

Nous avons encore quelques anomalies et réflexions pour comptabiliser les heure.cpu par projet (ce n'est pas acté).

Une fois que l'on sera fixé, nous devrions mettre à jours status_bars pour renvoyer les heures de calculs par projet (status_bars inferscerevol par exemple) ou par utilisateur.

En attendant, je comptabiliserais les heures.cpu réalisés via sacct (et la colonne CPUTimeRAW qui est égale à Elapsed time * CPU count en "cpu-secondes"):

sacct --allocations -n -P -S 2020-06-25 --format=CPUTimeRaw -u fpouyet,louisxiv -A inferscerevol | awk '{total+=$1} END{total_heure=total/3600; print total_heure}'

Soit 35631.3 heure.cpu pour le projet inferscerevol.

On aimerait à terme améliorer cette partie reporting (en nombre heure.cpu, stockage utilisé, CO2e, etc.).
reporting.add(todo);

Bonne continuation

1 « J'aime »

Bonjour,

je voudrais faire pareil, mais je ne sais pas trop comment remplir le formulaire dans https://calculator.green-algorithms.org/

Pourriez-vous m'aider?

Merci
Manuela

Bonjour,

Labos 1poin5 a réalisé un décryptage à ce propos: https://labos1point5.org/les-decryptages/decryptage-6
N'hésitez-pas à aller voir.

L'idée est d'estimer l'empreinte carbone du calcul.
Il faut donc connaître combien de temps son calcul à tourner et quelles ressources (CPU, RAM) ont été utilisés.
On peut faire cette estimation pour 1 job (mon job utilise 12 CPU, 48 Go RAM pendant 10 heures) ou pour un projet entier (j'ai réalisé 1258 heures de calcul).
A noter qu'on utilise souvent l'unité "heure.cpu" qui est simplement un raccourci (12 CPU pendant 10 heures = 120 heure.cpu).

Pour avoir ces informations, on peut utiliser la commande sacct (exemple détaillé plus haut) ou, sur l'IFB, faire appel à status_bars:

# Activer l'affichage des heure.cpu si ce n'est pas le cas
echo "export STATUS_BAR_CPU=1" >> ~/.status_bars.conf.sh

# Afficher les informations nous concernant
status_bars

Par exemple, votre projet comptabilise 98573 heure.cpu.
Pour faire l'estimation via Green Algorithms, on pourrait donc dire que notre projet a utilisé 1 CPU pendant 98573 heures.

Une fois qu'on a ces infos, on a plus qu'à remplir:

  • Runtime (HH:MM): le temps pris par mon calcul pour un job ou pour un projet (par exemple 98573 heures)
  • Type of cores: ici on va parler de CPU par opposition à GPU (les processeurs graphiques très utilisé en "IA"). Si vous ne savez pas de quoi on parle, utliser simplement CPU.
  • Number of cores: le nombre de CPU utilisé lorsque vous avez lancé votre traitement (option --cpus-per-task typiquement). Ou, par exemple, dans le cas de votre projet (98573 heure.cpu), on pourra indiquer 1 seul CPU (pendant 98753 heures).
  • Model: A l'IFB nous avons principalement des Intel Xeon E5-2695v3 et AMD EPYC 7662 (cf. https://ifb-elixirfr.gitlab.io/cluster/doc/cluster-desc/). Prendre un de ceux là ou proche.
  • Memory available (in GB): mémoire utilisé pour votre (option --mem typiquement).
  • Select the platform used for the computations: utiliser Local server
  • Select location: Europe, France
  • Do you know the real usage factor of your CPU?: No
  • Do you know the Power Usage Efficiency (PUE) of your local data centre?: environ 1.4 sur l'IFB.
  • Do you want to use a Pragmatic Scaling Factor?: No

Ce qui peut donner quelque chose comme:

Et le résultat:

Il faut bien garder en tête que ce sont de très très grosses approximations.
Cela donne un ordre de grandeur. Pas plus.

Bonne soirée

2 « J'aime »