Grünes Programmieren: So klappt es mit der IT-Nachhaltigkeit

Green coding
Sheila Zabeu -

Mai 30, 2023

Nachhaltigkeit und Ressourcenoptimierung sind die Themen unserer Zeit – auch im Bereich IT. Ein neues Konzept gerät dabei in den Fokus: Das der grünen Softwareentwicklung, auch grünes Programmieren genannt.

Bis vor wenigen Jahrzehnten gab es technologische Einschränkungen wie begrenzte Verarbeitungsleistung und Bandbreite. Entwickler mussten daher besonders aufmerksam sein, um die Größe und Komplexität der erstellten Codes zu reduzieren. Der Fortschritt und die erhöhte Verfügbarkeit von Hardware-Ressourcen machten diese Sorgfalt weitgehend überflüssig. Heute, wo sich Nachhaltigkeit zu einem so präsenten Thema entwickelt hat, ist die Bedeutung von Energiereduzierung in Form von grünem Programmieren wieder sehr präsent.

Als ein Teilbereich des „Green Computing“ betrachtet, zielt grünes Programmieren darauf ab Energie zu minimieren, die beim Verarbeiten von Codezeilen entsteht. Das hilft Organisationen dabei, den gesamten Energieverbrauch sowie Treibhausgasemissionen zu reduzieren. Der Beginn der Bemühungen um IT-Nachhaltigkeit sah noch etwas anders aus: Unternehmen behandelten bevorzugt Themen wie grüne Energie, Hardware-Effizienz und den Umgang mit Elektronikschrott. Aktuell tritt vor allem die effiziente Softwareentwicklung wieder in den Vordergrund.

Die 2021 gegründete Stiftung „Green Software Foundation“ arbeitet daran, ein vertrauenswürdiges Ökosystem von Menschen, Standards, Werkzeugen sowie Best Practices aufzubauen. Dieses soll zu einer nachhaltigen Softwareentwicklung beitragen. Ziel ist es, die Kultur des Code-Schreibens so zu verändern, dass Nachhaltigkeit für Entwicklerteams genauso wichtig wird wie Leistung, Sicherheit, Kosten und Zugänglichkeit.

In diesem Bestreben betont die Stiftung, dass die grüne Softwareentwicklung einen vollständigen Lebenszyklus umfasst: die Erstellung, die Laufzeit und die Entsorgung (Wiederverwendung). Die Green Software Foundation gibt einige Empfehlungen, um diesen Prozess zu unterstützen. Vier Bereiche stehen dabei im Fokus: Design- und Programmieroptionen, Auswahl der Programmiersprache, Einsatz von Künstliche Intelligenz-Modellen sowie Softwareentwicklung.    

Design- und Programmieroptionen: (1) Konzentrieren Sie sich auf die energieintensivsten Ressourcen und häufigsten Nutzungsszenarien und behalten Sie diese unter Kontrolle; (2) Reduzieren Sie die Datennutzung; (3) Entfernen Sie ungenutzte Ressourcen; (4) Erkennen und eliminieren Sie Schleifen, die das beabsichtigte Ziel nicht erreichen; (5) Passen Sie das Verhalten der Anwendungssoftware an den Energiemodus des Geräts oder andere Betriebsbedingungen an; (6) Begrenzen Sie die Rechengenauigkeit auf das gewünschte Maß; (7) Überwachen Sie den Energieverbrauch der Anwendung in Echtzeit, um optimierungsbedürftige Module zu identifizieren.

Auswahl der Programmiersprache: (8) Es gibt mehrere Faktoren, die hier Beachtung finden müssen. Daher ist die Empfehlung, eine detaillierte Bewertung vorzunehmen – unter Berücksichtigung der relevantesten Kriterien wie Energieverbrauch, Geschwindigkeit und Speichernutzung.

Auswahl des verwendeten KI-Modells: (9) Künstliche Intelligenz-Modelle können nachhaltiger sein, wenn ihre Entwicklung und Anwendung mit weniger Stromverbrauch einhergeht und sie wiederverwendbaren Code teilen. Damit lässt sich doppelte Arbeit reduzieren. Zudem ist es energetisch nachhaltiger, wenn sich die Modelle auf spezialisierte Hardware stützen, die für KI-Arbeitsabläufe optimiert wurde.

Softwareentwicklung: (10) Überwache den Energieverbrauch in Echtzeit während der Entwicklung. Mögliche Techniken hier: die dynamische Code-Analyse.

Anfang dieses Jahres veröffentlichte Microsoft ein Whitepaper, in welchem die Zusammenarbeit mit der gemeinnützigen Organisation für Umwelttechnologie WattTime beschrieben wird. Sie wird auch von der “Green Software Foundation” gefördert. Gemeinsam leisteten sie Pionierarbeit bei der ersten CO2-Erkennungsanwendung für Unternehmen und machten den Quellcode von Tools und Architektur öffentlich.

Die beiden Organisationen tragen auch zur Entwicklung einer neuen Spezifikation bei: die „Software Carbon Intensity“ (SCI) zielt darauf ab, den CO2-Ausstoß von Softwaresystemen zu messen. Sie haben dazu auch einen Open Source-Entwicklungskit-Code entwickelt, der hilft, Software dann und dort laufen zu lassen, wenn und wo die Energie am saubersten ist. Schon jetzt zeigt sich: Die Zusammenarbeit dieser beiden Projekte ermöglicht es Entwicklern künftig, Software zu „dekarbonisieren“.

Der Energieverbrauch sinkt

Nachhaltigkeit in Software- und Datenarchitekturen hatte bisher keine Priorität für Unternehmen. Laut der Beratungsfirma McKinsey sind falsche Vorstellungen dafür verantwortlich. Viele Führungskräfte in der IT glauben, dass der Energieverbrauch von Software zu vernachlässigen ist – oder bereits ausreichend optimiert. Daher übersehen Organisationen häufig das Thema Softwareentwicklung, wenn es um Energieeffizienz geht. Die Folge: unnötige Kosten durch mehr Komplexität und geringere Leistung.

Laut McKinsey gibt es fünf Bereiche, in denen eine genaue Analyse zu energieineffizienter Software und Datenarchitekturen führen. Entwickler sollten sich daher auf die folgenden Ebenen konzentrieren, die Optimierungslücken in Bezug auf Wartbarkeit, Wiederverwendbarkeit, Leistung und Funktionalität aufweisen.

Infografik zu gängigen Bereichen von Software- und Datenarchitektur, die den Energieverbrauch erheblich steigern können – zum Beispiel überentwickelte Benutzeroberflächen von Apps oder wiederholte Berechnungen von Daten.

Wie lässt sich der gesamte Fußabdruck von Software und Daten deutlich reduzieren? Das Beratungsunternehmen empfiehlt, die zugrunde liegenden Emissionsquellen in den Blick zu nehmen. Dafür gilt es drei Faktoren zu berücksichtigen, die im folgenden Diagramm dargestellt sind.

Die Grafik zeigt die drei Faktoren, die als größte Emissionsquellen von Software und Daten gelten: Kommunikation, Berechnung sowie Infrastruktur.