Aus Linux-Magazin 03/2023

Repositories für energiesparende Software

© Peachaya Tanomsup / 123RF.com

Einige Open-Source-Projekte widmen sich neuerdings der Frage, wie verschwenderisch Software mit Energieressourcen umgeht. Wir werfen einen Blick auf Projekte, die sich mit dem Energiemessen und -sparen beschäftigen.

Es spricht sich langsam herum: Software verschwendet häufig unnötig viel Energie. Wie viel genau, das wollen inzwischen auch mehrere Open-Source-Projekte messen. Vor dem Hintergrund des Klimawandels, aber auch wegen steigender Strompreise soll Software effizienter arbeiten. Dafür müssen aber zunächst Zahlen auf den Tisch, die untermauern, ob der Energiebedarf einer Software normal oder exzessiv ausfällt.

Ein Rundgang

Die Linux Foundation will – wie so häufig – dabei gleich große Brötchen backen. In der von ihr 2022 initiierten Green Software Foundation [1] tummeln sich Firmen wie Microsoft, Intel und Accenture. Das Anliegen: Ein Ökosystem aus Menschen, Standards, Tools und Best Practices aufzubauen, um energiesparendere Software zu schaffen. Dafür organisiert sich die Green Software Foundation in Arbeitsgruppen. Es warten bereits mehrere Repositories mit Software, Tools und Dokumenten unter https://github.com/Green-Software-Foundation.

Zum Beispiel pflegt die Open-Source-Arbeitsgruppe (Opensource WG) ein Repository namens Awesome Green Software [2], das eine ganze Reihe von Tools und Forschungsartikel zum Thema Energiesparen sowie nützliche freie Software verlinkt. Hinzu kommen eine Übersicht von Klimaorganisationen sowie freie Artikel, Paper und Bücher zum Thema.

Zu den angebotenen Tools gehören solche für den Cloud- und Machine-Learning-Bereich. So gibt es einen Link auf den Green Cost Explorer [3]. Das Javascript-Tool dockt an Amazons AWS Cost Explorer an, berücksichtigt aber neben den Kosten auch die Energiearten der AWS Regions. Am Ende zeigt es, wie viel erneuerbare (Green) und fossile Energie (Grey) die eigene Cloud-Anwendung benötigt.

Kepler [4], der Kubernetes Efficient Power Level Exporter, setzt auf eBPF, um energiebezogene Statistiken aus Kubernetes zu ziehen. Der Experiment Impact Tracker [5] und der Carbontracker [6] messen den zu erwartenden Energieaufwand für Machine- und Deep-Learning-Jobs. Auch betriebssystemspezifische Werkzeuge kennt das Repository. Der Eintrag Linux verweist zum Beispiel auf PowerAPI [7] und Powertop [8] – eine gute, wenn auch nicht vollständige Übersicht zu energiesparenden Tools also.

Grüne Muster

Wer die eigene IT-Landschaft grüner machen möchte, wird im Green-Software-Patterns-Repository fündig [9]. Dort sammelt das gleichnamige Projekt Tipps und Best Practices für unterschiedliche IT-Bereiche (KI, Cloud, Web), die es dann auf einer Website [10] präsentiert. Die Palette reicht von ganz allgemeinen Tipps (Cloud-Jobs geografisch möglichst nah beim Anwender ausführen) bis hin zu konkreten Handlungsempfehlungen (übertragene Daten komprimieren). Die Patterns verweisen dabei auf die Software Carbon Intensity Specification (SCI [11]) und zeigen mithilfe einfacher Formeln, wie Admins und Entwickler die Empfehlungen rechnerisch abbilden.

Die Spezifikation hilft dabei, Anwendungen bezüglich ihres CO2-Ausstoßes einen sogenannten SCI Score anzuheften. Je niedriger der ausfällt, desto weniger klimaschädliches Gas stößt eine Software aus. Der SCI Score bildet den CO2-Ausstoß C pro Einheit R ab, wobei eine Einheit abhängig vom Programm ein API-Aufruf, ein zusätzlicher User oder ein ML-Trainingslauf sein kann. Die grobe Formel lautet also SCI=C/R, wobei sich C zum Beispiel noch in O (Operational Emissions) und M (Embodied Emissions) unterteilen lässt. O wäre dann der Energiebedarf der Software selbst, M der anteilige Energieaufwand beim Herstellen und Entsorgen der darunterliegenden Hardware.

Das Carbon Aware SDK [12] integrieren Entwickler hingegen in ihre Anwendungen, um schwankende Energiepreise ökologisch geschickt auszunutzen. Es lässt sich wahlweise über die Kommandozeile oder per Web-API verwenden. Als typisches Einsatzszenario nennt das Projekt zeitunkritische ML-Jobs, die viel Energie ziehen. Das SDK hilft, die Workloads in andere Cloud-Regionen zu verlegen, in denen erneuerbare Energie gerade günstig ist. Alternativ hilft es beim Drosseln des Betriebs abhängig von der bezogenen Energieart. Die Macher hinter dem Projekt reden von CO2-Reduktionen im zweistelligen Prozentbereich.

Green Coding

Während die Green Software Foundation – wie die Linux Foundation selbst – eher eine US-Organisation ist, in der sich meist große Firmen tummeln, tut sich auch auf der Community-Ebene in Deutschland eine Menge. Green Coding beispielsweise hat seinen Hauptsitz in Berlin. Die Organisation ist überzeugt, dass sich Digitalisierung nur dann positiv auf die Gesellschaft auswirkt, wenn sie nachhaltig erfolgt. Sie will quelloffene Messwerkzeuge entwickeln, die den Energiebedarf von Software und ihrer Infrastruktur ermitteln. Dabei sollen eine Community sowie ein Ökosystem rund um grüne Software entstehen. Dafür arbeitet Green Coding mit der Sustainable Digital Infrastructure Alliance (SDIA [13]) zusammen, einem Zusammenschluss mehrerer Firmen mit einer Roadmap für eine nachhaltige digitale Infrastruktur.

In einem Repository bietet Green Coding das Green Metrics Tool [14] an. Die Software arbeitet Container-basiert und ist derzeit nur für Experimente und Tests gedacht. Sie setzt voraus, dass die zu messende Anwendung ebenfalls auf Container-Basis läuft. Ein Python-Backend übernimmt das Orchestrieren der Infrastruktur. Es klinkt sich über »usage_scenario.yml« in die verschiedenen Container ein [15]. Diese Datei implementiert ein Subset der Docker-Compose-Spezifikation [16]. Einmal integriert, generieren in C geschriebene Metrics Reporters in den Containern der Anwendung die Metriken. Diese messen zum Beispiel den Speicherplatz pro Container, die prozentuale CPU-Auslastung oder den systemweiten Energiebedarf. Eine Python-API empfängt die Metriken, ein Javascript-Webfrontend bildet sie grafisch ab (Abbildung 1). Neben der Dokumentation [17] enthält das Repository auch Beispielanwendungen. Eine davon ermöglicht, den Test von Okular für den Blauen Engel zu reproduzieren.

Abbildung 1: Das Green Metrics Tool nimmt Messungen an Containern vor und visualisiert dann die Messwerte.

Abbildung 1: Das Green Metrics Tool nimmt Messungen an Containern vor und visualisiert dann die Messwerte.

KDE Eco

Apropos Blauer Engel: Tatsächlich arbeitet Green Coding auch mit KDE Eco [18] zusammen, einer noch jungen KDE-Initiative, die mehr Nachhaltigkeit in freie und offene Software bringen möchte [19]. Ziel ist es zunächst, den Energiebedarf freier und quelloffener Software zu messen und Entwicklern später auch zu helfen, ihn zu optimieren.

Das Projekt [20] bietet zwei zentrale Repositories an. Das FOSS Energy Efficiency Project (FEEP [21]) orientiert sich grundlegend an der Methodik des Blauen Engels. Ein zentrales Paper darin beschreibt ein Measurement-Setup [22], das einen Referenzrechner, ein Energiemessgerät sowie Software vorsieht. Sie automatisieren das Ausführen der zu testenden Software sowie das Aufzeichnen und Verarbeiten der Messdaten. Auch dieses Projekt steckt noch in den Kinderschuhen.

Das BE4FOSS-Repository [23] widmet sich hingegen dem Blauen Engel, bewirbt aber auch die Arbeit im FEEP-Projekt. Anfang 2022 erhielt als erste Software überhaupt die KDE-Anwendung Okular das Umweltzeichen. Das Repository dokumentiert diesen Prozess, sammelt Informationen zum Blauen Engel und verlinkt auf begleitende Workshops und Handbücher.

Wer mit dem Gedanken spielt, die eigene Software zu zertifizieren, findet Hilfe im Repository Blue Angel Application [24]. Es enthält die Dokumente, mit denen sich Okular und Kmail für den Blauen Engel beworben haben.

Fazit

Wer sich ernsthaft mit Software und Energiesparen beschäftigt, findet inzwischen eine Menge an Ressourcen im Netz; die hier vorgestellten Beispiele zeigen nur einen Ausschnitt. Deutlich wird aber, dass viele der Projekte noch am Anfang stehen. Es gibt weder feste Standards für den Messprozess noch einfach in große Infrastrukturen integrierbare Toolchains. Sind diese Hürden erst einmal genommen, könnten sich solche Tools aber spürbar auf den Energiebedarf von Software auswirken.

Infos

  1. Green Software Foundation: https://greensoftware.foundation
  2. Awesome Green Software: https://github.com/Green-Software-Foundation/awesome-green-software
  3. Green Cost Explorer: https://github.com/thegreenwebfoundation/green-cost-explorer
  4. Kepler: https://github.com/sustainable-computing-io/kepler
  5. Impact Tracker: https://github.com/Breakend/experiment-impact-tracker
  6. Carbontracker: https://github.com/lfwa/carbontracker
  7. PowerAPI: https://github.com/powerapi-ng/
  8. Powertop: https://github.com/fenrus75/powertop
  9. Repository von Green Software Pattern: https://github.com/Green-Software-Foundation/green-software-patterns
  10. Green Software Pattern: https://patterns.greensoftware.foundation/
  11. Software Carbon Intensity Specification: https://grnsft.org/sci
  12. Carbon Aware SDK: https://github.com/Green-Software-Foundation/carbon-aware-sdk
  13. Sustainable Digital Infrastructure Alliance: https://sdialliance.org
  14. Green Metrics Tool: https://github.com/green-coding-berlin/green-metrics-tool
  15. »usage-scenario.yml«: https://docs.green-coding.org/docs/measuring/usage-scenario/
  16. Docker Compose Specification: https://docs.docker.com/compose/compose-file/
  17. Dokumentation Green Metrics Tool: https://github.com/green-coding-berlin/documentation
  18. KDE Eco: https://eco.kde.org/de/
  19. Report: Bits & Bäume: Kristian Kißling, “Grüner wird’s nicht”, LM 01/2023, S. 14, https://www.lm-online.de/48410
  20. Gitlab-Repositories von KDE Eco: https://invent.kde.org/teams/eco
  21. FEEP-Repository: https://invent.kde.org/teams/eco/feep
  22. Measurement Setup: https://invent.kde.org/teams/eco/feep/-/blob/master/measurement_setup.md
  23. BE4FOSS-Repository: https://invent.kde.org/teams/eco/be4foss
  24. Blue Angel Application: https://invent.kde.org/teams/eco/blue-angel-application
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 2 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben