GreenCoding – weniger CO2-Emissionen durch effiziente Software: 7 Tipps
Die Digitalisierung hilft, CO2 einzusparen – darin sind sich viele Experten einig. Doch ganz so einfach ist die Sache nicht, denn die Erstellung der Software und ihre Nutzung tragen selbst erheblich zu den Treibhausgas-Emissionen bei. GFT hat nun das Thema “GreenCoding” auf der Agenda – denn: Mit dem richtigen Code wird Programmierung tatsächlich “grün”.
von Gonzalo Ruiz de Villa (CTO) & Tim Schade (Senior Software Architect), GFT
Der Klimawandel ist da. Eine Begrenzung des Temperaturanstiegs auf 1,5 Grad scheint kaum mehr erreichbar. Umstritten sind nur die Maßnahmen, mit denen CO2-Emissionen reduziert werden sollen.Gonzalo Ruiz de Villa ist Global Chief Technology Officer (CTO) bei GFT (Website). Er kam 2015 durch die Übernahme des Unternehmens Adesis Netlife zu GFT, dessen Mitbegründer und CTO er war. Bevor er Adesis Netlife gründete, arbeitete er beim CERN und bei IBM. Darüber hinaus ist er Gründungspartner von Kenobi Ventures, einem Risikokapitalfonds, der sich auf Investitionen in Technologie-Start-ups spezialisiert hat, Mitglied des Google Developer Experts (GDE)-Programms und Mentor für das Google Launchpad-Programm sowie für die Google Women Developer Academy. Gonzalo hat einen Master in Wirtschaftsingenieurwesen. Er trägt regelmäßig zur Entwicklergemeinschaft bei, indem er Artikel schreibt, Reden hält, Workshops leitet und Live-Coding-Talks hält.
Eine Schlüsselrolle in allen Überlegungen spielt die Digitalisierung. Dabei wird mitunter vergessen, dass die IT selbst für Emissionen verantwortlich ist. Informations- und Kommunikationstechnologie macht aktuell 5 bis 9 Prozent des weltweiten Stromverbrauchs aus. Wegen der schnell voranschreitenden Digitalisierung werden es 2030 laut Schätzungen von Enerdata bis zu 21 Prozent sein. Weil nur 11 Prozent der globalen Energieproduktion aus erneuerbaren Quellen stammen (Stand 2019), trägt IK-Technologie bereits heute erheblich zu den CO2-Emissionen bei, und der Ausstoß von Schadstoffen wird noch zunehmen.
Solche abstrakten Zahlen geben kaum wieder, um welche Dimensionen es geht. Experten schätzen, dass eine Google-Suche circa 0,2 Gramm CO2 freisetzt. Wollte man die Emissionen für alle Suchanfragen eines Jahres durch das Pflanzen von Bäumen kompensieren, müsste man etwa 40 Millionen Bäume pflanzen – unter der Annahme, dass ein Baum im Jahr etwa 10 Kilogramm CO2 zu Biomasse verarbeitet und es schätzungsweise 5,6 Milliarden Suchanfragen täglich gibt. Aber selbst das ist ein Klacks angesichts der 2,2 Milliarden Bäume, die man für die 22 Millionen Tonnen CO2 pflanzen müsste, die beim Bitcoin-Mining jährlich in die Atmosphäre gepustet werden.
Und auch das dritte Beispiel lebt vom Skalierungseffekt: Wenn Sie selbst täglich nur eine Stunde am Laptop arbeiten, müssten Sie dafür schon jedes Jahr einen Baum pflanzen. Bei acht Stunden am Tag und Millionen von Bürobeschäftigten allein in Deutschland kommt hier schnell eine erkleckliche Summe zusammen.
Was tun?
Darauf warten, dass die Stromerzeugung noch schneller auf erneuerbare Quellen umgestellt wird, ist angesichts dieser Zahlen keine Option.
Vielmehr müssen auch IT und Software emissionsärmer werden. Green IT ist vermutlich vielen ein Begriff.”
Dabei soll der Energieverbrauch der IT vor allem durch effizientere Hardware reduziert werden, etwa indem man Rechenzentren energiesparender betreibt. Ein neues Konzept ist GreenCoding. Der Begriff fasst eine Vielzahl von Maßnahmen zusammen, die helfen können, Software emissionsärmer und nachhaltiger zu entwickeln.
Älteren, die sich schon in den 1980ern näher mit Computern befassten, kommt das Prinzip hinter Green Coding vielleicht bekannt vor. Auch damals kämpften Programmierer mit Restriktionen, nämlich mit nach heutigen Maßstäben winzigen RAM- und Festspeichern, gemächlichen Prozessoren und lächerlichen Übertragungsbandbreiten. Sie mussten um jedes Bit kämpfen.
Programmierer haben schon in den 1980ern so ähnlich gearbeitet, wie das heute GreenCoding verlangt.“
Marika Lulay, CEO GFT
Nur seien diese Einschränkungen später im Überfluss von Speicher und Rechenleistung weggefallen, die Prioritäten hätten sich verschoben.
Alte Prinzipien – neu entdeckt
Neuerdings besinnt man sich wieder auf solche Prinzipien – wenn auch aus anderer Motivation, nämlich zur Einsparung von CO2-Emissionen. Möglichkeiten gibt es zuhauf, wie diese Beispiele zeigen:
- Komprimiert man die Inhalte einer HTML-Webseite von 200 kB auf 20 kB, schrumpft der Umfang für die Übermittlung auf etwa ein Zehntel. Wird diese Seite von einer Million Nutzern pro Jahr besucht, spart das zehn Kilogramm CO2 – für die man zur Kompensation einen Baum pflanzen müsste.
- 132 Kilogramm CO2 pro Jahr spart eine App, die eine Million mal am Tag aufgerufen wird und deren Start um eine Sekunde beschleunigt.
- Eine Anwendung, die in Zukunft häufiger vorkommen dürfte, ist das Training von neuronalen Netzen der künstlichen Intelligenz. Das KI-Netzwerk GPT-3, das für Furore sorgte, weil es Texte verfassen kann, die erstaunlich „menschlich“ klingen, erzeugte beim Training 85 Tonnen CO2 – so viel wie ein Auto, das die Strecke von der Erde zum Mond und wieder zurückfahren würde. Wissenschaftler der Universität Berkeley haben mit Experten von Google Verfahren entwickelt, die beim Training solcher Netzwerke 99,9 Prozent der Energie einsparen.
- Der „Dark Mode“ kann bei OLED- oder MicroLED-Displays enorme 550.000 Tonnen CO2 sparen, wenn man weltweit von etwa einer Milliarde Smartphones mit solchen Displays ausgeht, die konsequent Dark Mode nutzen.
Dennoch steckt die Optimierung von Software auf Energieeffizienz – das GreenCoding – erst in den Kinderschuhen. Ein Grund könnte sein, dass es ziemlich kompliziert ist, die Emissionen einer Software richtig zu beziffern. Software-Anbieter kalkulieren üblicherweise nur die Emissionen von Scope 1 und Scope 2 ein. Scope 1 sind die Emissionen aus der direkten Verbrennung von fossilen Stoffen bei der Produktion einer Ware. Scope 2 sind indirekte Emissionen, die bei der Fertigung entstehen, etwa durch den Einkauf von Strom. Unter Scope 3 versteht man alle Emissionen, die in der Lieferkette entstehen, etwa beim Schürfen von Rohstoffen, sowie später im Betrieb beim Kunden oder bei der Entsorgung. Solche Scope 3-Emissionen gibt es auch bei Software, wie das Beispiel Microsoft zeigt. 75 Prozent aller Emissionen des Unternehmens entfallen auf Scope 3, also auf die Herstellung und den Vertrieb sowie die Benutzung von Windows, Office oder der Cloud-Produkte auf unseren PCs im Büro oder zuhause.
Künftig müssen sich Unternehmen um diese Emissionen kümmern. Zum einen, weil die gesetzliche Regulierung als Folge des Green Deal der EU immer strenger wird. Zum anderen üben Investoren wie der weltgrößte Vermögensverwalter Blackrock zunehmend Druck auf Unternehmen aus, etwa ihren ESG-Score offenzulegen.”
Eine Hürde fürs GreenCoding ist, dass es noch keine Defacto-Standards gibt, mit denen man geeignete Maßnahmen identifizieren kann. Wer nachhaltige Software erstellen (GreenCoding) oder im Nachhinein bestehende Software nachhaltiger machen möchte (GreenRefactoring), sollte dort ansetzen, wo die größten Optimierungspotenziale liegen. Wünschenswert wäre eine Lösung zum exakten Messen des Stromverbrauchs respektive der CO2-Emissionen einzelner Maßnahmen, Entscheidungen oder gar Codezeilen. Das kann allerdings komplex, aufwändig und fehleranfällig sein.
GreenCoding-Tipps für Software-Entwickler
Grüne Architektur
1. Bei Nichtgebrauch abschaltenWenn niemand im Raum ist, schaltet man das Licht aus – das sollte auch bei Software so sein. Die sollte nach modularen Prinzipien entworfen werden, so dass Module und Microservices bei geringerer Nachfrage heruntergefahren werden. 2. Spontanen Verbrauch vermeiden
Meistens arbeitet Software in Echtzeit: Aufträge werden sofort abgearbeitet. Das ist aber nicht immer nötig. Bestimmte Aufgaben wie Housekeeping, Video-Transkodierung oder Datenbackups können unter Umständen zeitlich verschoben werden. So lassen sich Aufgaben zusammenfassen und dann ausführen, wenn genügend grüne Energie zur Verfügung steht. Außerdem wird die Hardware besser ausgelastet.
In seinen Webinaren bei GFT lehrt Tim Schade die Grundprinzipien von GreenCoding. Über 400 Personen haben bereits teilgenommen und ein Zertifikat erhalten. Man kann die Maßnahmen in vier Bereiche einteilen: Architektur, Logik, Methodik und Plattformen. Zu jedem dieser Bereiche gibt es viele Tipps, Richtlinien und Guidelines.
Bis 2025 emissionsfrei
Zum Schluss noch einmal der Hinweis: GreenCoding steht noch am Anfang, erst wenige Software-Anbieter und Anwender beschäftigen sich damit. Gerade deshalb hat sich GFT auf die Fahnen geschrieben, das Thema voranzutreiben. Das geschieht mit Partnern, um ein gemeinsames Verständnis zu erlangen, das vielleicht eines Tages in eine GreenCoding-Zertifizierung mündet. Auch firmenintern unternimmt GFT viel, um Emissionen zu senken. So hat das Unternehmen angekündigt, dass es bis 2025 die Emissionen auf netto Null bringen möchte. Das heißt: Emissionen reduzieren, wo es möglich ist, und die restlichen Emissionen kompensieren.
Grüne Logik
3. Code-Verschwendung vermeiden90 Prozent der Software enthält heute Open-Source-Code, der von Dritten entwickelt wurde. Manchmal passt er perfekt zum Problem, oft aber enthält er redundante Abschnitte, die dafür sorgen, dass sich Artefakte vergrößern und damit das Erstellen, das Verteilen und den Start von Anwendungen verlangsamen. So genannte „Tree-Shaking“-Engines finden und entfernen „toten“ Code. 4. Sparsame Ressourcen verwenden
Manche Dateiformate verbrauchen weniger Ressourcen als andere. CSV braucht weniger als Excel, YAML weniger als XML. Untersuchungen von GFT zeigen, dass auch die Wahl der API einen direkten Einfluss auf die Treibhausgasemissionen haben kann. Ein großes Einsparpotenzial bieten auch Bilder. Sie sollten stets komprimiert werden, um weniger Daten über das Netzwerk zu übertragen.
Grüne Methodik
5. Agile Entwicklung nutzenAgile und Lean-Methoden erleichtern die Anpassung von Software für mehr Effizienz. Die Entwicklung in kleinen Schritten hilft, Rückkopplungsschleifen zu reduzieren. Die Entwickler kompilieren und testen dann nur die modifizierten Codeabschnitte, nicht ganze Projekte. 6. Lange Ladezeiten vermeiden
Die Lade- und Startzeit einer Software ist einfach zu messen und korreliert direkt mit dem Energieverbrauch. Für Entwickler ist das eine gute Möglichkeit, um die Auswirkungen von Code-Änderungen zu bewerten.
Grüne Plattform
7. Hardware optimal auslastenServer, die nicht voll ausgelastet sind, verbrauchen mehr Energie, als sie müssten. Das kommt vor, wenn Systeme zu groß geplant werden. Cloud-Computing kann große Energieeinsparungen bieten, da Public-Cloud-Systeme hochgradig modular sind und eine präzise Steuerung der Auslastung ermöglichen. AWS, Google Cloud und Microsoft Azure laufen beispielsweise mit einer Auslastung von circa 65 Prozent, während Rechenzentren vor Ort nur 12 bis 18 Prozent erreichen.aj
Sie finden diesen Artikel im Internet auf der Website:
https://itfm.link/128632
Schreiben Sie einen Kommentar