Fachartikel

Green Coding: Energieverbrauch von Software messen (NEWS 01/2023)

In einem ersten Fachartikel sind wir detailliert auf die konkreten Maßnahmen und Entwicklungsmuster für energieeffizientes, ressourcenschonendes Coding (Green Coding) eingegangen. Ein Teilaspekt von Green Coding ist die Frage, wie man Algorithmen energieeffizienter und damit nachhaltiger programmieren kann. Daher ist es essenziell, den Energieverbrauch einer Software und ihrer Einzelkomponenten zu messen.

921
3 Minuten Lesezeit
NEWS-Artikel Green Coding (01-2023)

Intro

In einem ersten Fachartikel1 sind wir detailliert auf die konkreten Maßnahmen und Entwicklungsmuster für energieeffizientes, ressourcenschonendes Coding (Green Coding) eingegangen. Ein Teilaspekt von Green Coding ist die Frage, wie man Algorithmen energieeffizienter und damit nachhaltiger programmieren kann. Daher ist es essenziell, den Energieverbrauch einer Software und ihrer Einzelkomponenten zu messen.

Green Coding – den Energieverbrauch von Software richtig messen

Um herauszufinden, an welchen Stellen im Sourcecode Energie eingespart werden kann, benötigt man Werkzeuge zum Messen des Energieverbrauchs. Tools, die auf Prozessebene den Energieverbrauch von Software messen, sind beispielsweise bereits in Windows2 integriert. In einen Prozess „hineinsehen“ kann man mit diesen Tools allerdings nicht.

Das bedeutet, dass keinerlei Aussage darüber getroffen werden kann, welche Komponente oder Funktion innerhalb des Prozesses am meisten Energie verbraucht. Doch exakt diese Information ist für Entwickler essenziell.

Wie kann gezielt Richtung Energieeffizienz optimiert werden, wenn der genaue Ansatzpunkt unbekannt ist?

Spezielle Tools, wie zum Beispiel das von msg for banking im Rahmen eines Innovationsprojekts entwickelte Tool jPowerMonitor, überwachen innerhalb laufender Applikationen, welche Funktionen gerade aktiv sind und wie viel CPU-Zeit sie in Anspruch nehmen.

Die enthaltenen Komponenten JUnit-Extension und Java Agent ermöglichen direkte Messungen des Energieverbrauchs auf Unit-Test- beziehungsweise Methoden-Ebene eines beliebigen Java-Prozesses. Einzig ein ausführbares JAR-File wird benötigt – für Server-Anwendungen muss ein Java Agent konfiguriert werden.

Java Agents sind Teil der Java Instrumentation API. Die Instrumentation API3 bietet die Möglichkeit, Java Bytecodes zu ändern sowie dynamisch Code zu einem Programm hinzuzufügen. Beispielsweise nutzen Profiling Tools zur Messung von Performance und Speicherverbrauch Java Agents. jPowerMonitor klinkt sich somit in die laufende Anwendung ein, ohne dass deren Code angepasst beziehungsweise überhaupt vorliegen muss.

Die zur Ermittlung des Energieverbrauchs zusätzlich notwendigen Messdaten, wie zum Beispiel den aktuellen Gesamtverbrauch der CPU in Watt, kann jPower-Monitor nicht selbst abgreifen. Zu diesem Zweck ist eine Schnittstelle implementiert, die Stand heute die beiden Windows-Tools Open Hardware Monitor4 sowie HWiNFO5 anbindet. Mittels CSV-Schnittstelle können durch Konfigurationsanpassungen auch Tools für Linux oder MacOS angebunden werden.

Green Coding

Abbildung 1: jPowerMonitor – Beispielausgabe für eine Benchmarkmessung

jPowerMonitor bietet darüber hinaus die Möglichkeit, auf die eigenen Funktionen in Java-Programmen zu filtern. Manchmal kann es aber auch interessant sein zu sehen, wie viel Energie die benutzten Frameworks benötigen. Dies ist gerade bei der Erstellung von Prototypen hilfreich, um die energieeffizienteste Bibliothek auszuwählen.

Mit der JUnit-Erweiterung lassen sich beispielsweise zwei Algorithmen, die das gleiche Problem adressieren, hinsichtlich ihres Energieverbrauchs vergleichen.

Beide Erweiterungen schreiben während des Messlaufs den Momentanverbrauch in Watt sowie den kumulierten Energieverbrauch pro Testfall in Wattstunden beziehungsweise pro Methode in Joule in separate CSV-Dateien.

Interpretation der Messergebnisse

Es gilt zu beachten, dass die ermittelten Messwerte nicht eins zu eins den Verbrauch an der Steckdose wiedergeben, da Faktoren wie Verluste der AC/DC-Wandler, Lüfter, GPU-Stromverbrauch etc. nicht berücksichtigt werden. Dennoch gibt jPowerMonitor einen Anhaltspunkt, wie viel Energie einzelne Softwarekomponenten benötigen.

Wie bei allen experimentellen Verfahren gilt, dass wiederholte Messungen die Aussagekraft erhöhen, daher sollten stets mehrere Messläufe unter gleichen Rahmenbedingungen durchgeführt werden. So ist zum Beispiel darauf zu achten, dass während der Messung möglichst keine rechenintensiven Hintergrundprozesse laufen.

Fazit

jPowerMonitor hilft Entwicklern, herauszufinden, an welchen Stellen des eigenen Programms der meiste Strom verbraucht wird. So haben sie die Möglichkeit, den Code im Sinne von Green Coding zu optimieren und zur Reduzierung von CO2-Emissionen beizutragen.

Aktuell ist das Tool exklusiv für Java verfügbar. Das Konzept von jPowerMonitor lässt sich jedoch auf weitere Programmiersprachen übertragen, die Introspektion beziehungsweise Reflection unterstützen, wenngleich die Library für die jeweilige Sprache neu implementiert werden muss.

jPowerMonitor ist seit Anfang März 2023 OpenSource unter der Apache License 2.0 verfügbar und kann bei GitHub bezogen werden.6

Quellenangaben und weiterführende Hinweise

Related Collections

Kundenmagazin NEWS 03/2022

Liebe Leserinnen und Leser, mit 2022 geht ein Jahr zu Ende, in dem eine Zeiten- und eine Zinswende eingetreten ist. Und die Hoffnung auf ein absehbares Ende der Krisen weicht der Erkenntnis, dass wir noch länger im Krisenmodus leben werden. Es stimmt: Krisen stellen uns, unseren Zusammenhalt, unsere Solidarität auf die Probe. Aber sie sind auch immer Katalysatoren für neue Ansätze. Den Mut und die Hoffnung zu verlieren, ist für uns daher keine Option. Viel lieber halten wir es mit Friedrich Wilhelm Raiffeisen, der meinte: „Was einer alleine nicht schafft, das schaffen viele.“ Für uns heißt das, dass wir uns den aktuellen und kommenden Herausforderungen stellen und uns dafür einsetzen, sie gemeinsam mit Ihnen, unseren Kunden, zu bewältigen. Gemeinsam arbeiten wir an Lösungen, die der Branche Banking dabei helfen, die aktuellen und die kommenden Herausforderungen zu stemmen. Einige Ansätze stellen wir Ihnen in dieser Ausgabe unseres Kundenmagazins NEWS vor. Der Klimawandel, eine der großen Zukunftsaufgaben, beschäftigt zunehmend auch die Branche Banking. In dieser NEWS stellen wir Ihnen aktuelle Erkenntnisse über Klimastresstests und den Weg von der EZB zur 7. MaRisk-Novelle vor. Der Umbau der Volkswirtschaft hin zu mehr Nachhaltigkeit ist in hohem Maße mit der Kreditpolitik der Bankwirtschaft verknüpft. Entsprechend hat auch die Politik reagiert und die Institute mit entsprechenden Anforderungen konfrontiert. Welche das konkret sind, lesen Sie in dieser Ausgabe der NEWS. Ein weiteres großes Zukunftsthema ist Cloud Banking. Dass es neben der technologischen Sicht auch eine betriebswirtschaftliche und sogar strategische Bedeutung hat, zeigt der zweite Teil unserer Serie zum Cloud Banking. In weiteren Beiträgen stellen wir Ihnen das Geschäftsmodell der Consulting Bank vor, das im Banking der Zukunft zunehmend an Bedeutung gewinnen wird. Wir beleuchten in Teil drei unserer Serie zu den IRRBB, wie die konkreten aufsichtlichen Erwartungen an das Management der Zinsänderungsrisiken im Anlagebuch aussehen, und unterziehen sie einer kritischen Bewertung. Unsere Serie zu szenarioabhängigen Expected Cashflows schließen wir mit einer praxisnahen Beispielrechnung ab, in einem Praxisbericht zeigen wir die Einführung eines FINMA konformen Asset-Liability- und Risikomanagements in der Migros Bank und vieles mehr. Haben Sie eine anregende Lektüre. Für die nun kommende Weihnachtszeit und das neue Jahr 2023 wünsche ich Ihnen Licht, Freude und Hoffnung. Lassen Sie uns die aktuellen und die zukünftigen Herausforderungen gemeinsam anpacken und Lösungswege finden. Dr. Frank Schlottmann Vorstandsvorsitzender der msg GilllardonBSM AG

Kundenmagazin NEWS 02/2022

Liebe Leserinnen und Leser, was heißt normal? Üblicherweise assoziiert man damit „alltäglich“ oder „durchschnittlich“. Doch dann haben zuerst die Pandemie und nun der Krieg in der Ukraine mit all ihren Auswirkungen die Normalität auf den Kopf gestellt. Seither leben wir im „new normal“. Für uns bedeutet normal, dass wir – gerade auch in schwierigen Zeiten – ein verlässlicher Partner an Ihrer Seite sind. Und dass wir Sie in den Themen unterstützen, die für die Branche Banking heute und morgen relevant sind. So gesehen ist auch unser aktuelles Kundenmagazin NEWS im besten Sinne normal. Wir werfen in diesem Heft einen „Blick auf die neuen technischen Regulierungsstandards der EBA zu aufsichtlichen Ausreißertests“ und informieren Sie im dritten Teil unserer Serie „EBA/GL/2020/06 – Auswirkungen auf die Kalkulation“ über die „Kostenallokation und Geschäftsfeldsteuerung“. Der Beitrag „Szenarioabhängige Expected Cashflows“ zeigt einen „modernen Ansatz auch zur Modellierung automatischer Optionen“ und im Artikel „Expected Cashflow“ erfahren Sie Details zur Kalkulationsmethodik. Der Ukrainekrieg zwingt Banken, ihre Strategie zur Bekämpfung von Finanzkriminalität auf den Prüfstand zu stellen. Im Beitrag „Die Implikationen des Ukrainekonflikts für Finanzunternehmen“ bekommen Sie einen fundierten Überblick, worum es bei den EU-Sanktionen gegen Russland im Einzelnen geht. Des Weiteren sprechen wir mit unseren Experten darüber, warum der Weg in die Cloud für Banken interessant ist und auf was sie dabei achten müssen, wir informieren Sie über die Zinsanpassung bei Prämiensparverträgen, darüber, wie Banken die agile Transformation von verteilten Teams aktiv gestalten können, und über vieles mehr. Ich hoffe, dass wir Ihnen mit unseren Beiträgen in dieser Ausgabe wieder Impulse und Unterstützung bieten können, auch in Zeiten, in denen wir „normal“ immer wieder neu definieren müssen. Ich wünsche Ihnen viel „persönliches Normal“, einen angenehmen Sommer und eine interessante Lektüre! Dr. Frank Schlottmann Vorstandsvorsitzender der msg GilllardonBSM AG

Sustainable Banking, Nachhaltigkeit

Sustainable Banking

Nachhaltigkeit ist aus der Branche Banking nicht mehr wegzudenken. Treiber sind zum einen die Initiativen von Gesetzgebern und Regulatoren. Aber auch Kunden stellen vermehrt nachhaltige, umweltfreundliche und klimaschonende Aspekte in den Mittelpunkt ihrer Finanzentscheidungen. Um den langfristigen ökonomischen Erfolg zu sichern sowie die regulatorischen Hürden zu meistern, müssen Banken frühzeitig ihre Geschäftstätigkeit auf Nachhaltigkeitsziele ausrichten und fit sein für den Umgang mit Nachhaltigkeitsrisiken. Wie sieht die optimale Vorbereitung auf eine nachhaltige Zukunft in der Branche Banking aus? Dieser Frage gehen wir in unserer Serie Sustainable Banking auf den Grund.

Jakob Deiner

Jakob Deiner

ist M. Sc. Informatik und berät bei msg for banking Kunden in seinen Schwerpunktthemen IT-Architektur, objektorientiertes Design und containerbasierte Betriebsplattformen. Er ist außerdem Certified Professional for Software Architecture (iSAQB) - Foundation Level (CPSA-F) und Certified Scrum Master (CSM), Scrum Alliance.

Schreiben Sie einen Kommentar

Sie müssen sich anmelden, um einen Kommentar zu schreiben.