ARCHIV4. November 2021

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

GreenCoding - weniger CO2-Emissionen durch effiziente Software
bigstock.com/Peach_BigStockPhoto
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.

Autor Gonzalo Ruiz de Villa, CTO GFT

Autor: Gonzalo Ruiz de Villa ist seit 2018 der GFT-CTO<q>GFT

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.

GreenCoding - das richtige KI-Training kann enorm CO2 einsparen
GFT

Was tun?

Darauf warten, dass die Stromerzeugung noch schneller auf erneuerbare Quellen umgestellt wird, ist angesichts dieser Zahlen keine Option.

Autor Tim Schade, Senior Software Architect GFT Technologies

Autor: Tim Schade, Senior Software Architect bei GFT Technologies

Tim Schade ist Softwarearchitekt und -entwickler bei GFT. Seit mehr als 10 Jahren ist er verantwortlich für das Design und die Umsetzung von diversen Softwareprojekten. Sein Schwerpunkt liegt dabei auf skalierbaren Java-Anwendungen. Weitere Themen- und Interessensfelder sind AI, DevOps und Cloud.

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 - sagt Marika Lulay, CEO GFT
GFT

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.

Website komprimieren hilf beim GreenCoding
GFT

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.

Mit schnelleren App-Ladezeiten nähert man sich dem GreenCoding
GFT

GreenCoding-Tipps für Software-Entwickler

Grüne Architektur

1. Bei Nichtgebrauch abschalten
Wenn 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.

GFT und GreenCoding
Der­zeit ar­bei­te GFT an ei­nem qua­li­ta­ti­ven As­sess­ment. Das kann man sich wie ei­ne Check­lis­te vor­stel­len, die ein­zel­ne Maß­nah­men nach ih­rem Ef­fekt ge­wich­tet und den Nut­zern Feed­back gibt, wo es noch un­ge­nutz­te Po­ten­zia­le gibt oder ob sie GreenCoding schon weit­ge­hend um­set­zen. Zu­künf­tig sol­len die As­ses­ments mit Mes­sun­gen des tat­säch­li­chen Ver­brauchs und Ein­spa­run­gen von Maß­nah­men ver­knüpft wer­den. Denn der tat­säch­li­che Ver­brauch hängt auch von den ein­ge­setz­ten End­ge­rä­ten, den Nut­zungs­ge­wohn­hei­ten der An­wen­der und der Hard­ware der Be­trei­ber ab.

In sei­nen We­bi­na­ren bei GFT lehrt Tim Scha­de die Grund­prin­zi­pi­en von Green­Co­ding. Über 400 Per­so­nen ha­ben be­reits teil­ge­nom­men und ein Zer­ti­fi­kat er­hal­ten. Man kann die Maß­nah­men in vier Be­rei­che ein­tei­len: Ar­chi­tek­tur, Lo­gik, Me­tho­dik und Platt­for­men. Zu je­dem die­ser Be­rei­che gibt es vie­le Tipps, Richt­li­ni­en und Gui­de­li­nes.

Bis 2025 emis­si­ons­frei

Zum Schluss noch ein­mal der Hin­weis: GreenCoding steht noch am An­fang, erst we­ni­ge Soft­ware-An­bie­ter und An­wen­der be­schäf­ti­gen sich da­mit. Ge­ra­de des­halb hat sich GFT auf die Fah­nen ge­schrie­ben, das The­ma vor­an­zu­trei­ben. Das ge­schieht mit Part­nern, um ein ge­mein­sa­mes Ver­ständ­nis zu er­lan­gen, das viel­leicht ei­nes Ta­ges in ei­ne Green­Co­ding-Zer­ti­fi­zie­rung mün­det. Auch fir­men­in­tern un­ter­nimmt GFT viel, um Emis­sio­nen zu sen­ken. So hat das Un­ter­neh­men an­ge­kün­digt, dass es bis 2025 die Emis­sio­nen auf net­to Null brin­gen möch­te. Das hei­ßt: Emis­sio­nen re­du­zie­ren, wo es mög­lich ist, und die rest­li­chen Emis­sio­nen kompensieren.

Grüne Logik

3. Code-Verschwendung vermeiden
90 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 nutzen
Agile 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 auslasten
Server, 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

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert