 Jetzt ist besser? Okay. Also nochmal ganz kurz, Stefan Kreuer. Ich freue mich hier, einen Vorstellen zu dürfen, einen Do-it-yourself Workshop, der mich ganz stark an meine Zeit im Physikunterricht früher in der Schule erinnert. Es geht um den Energieverbrauch von Software und zwar konkret eine Anleitung zum selber machen, wie man es einfach mal selber ganz praktisch hands-on selber messen kann. Und ich freue mich, dass der Jens Kröger Vorstellen zu dürfen vom Öko-Institut in Berlin ist, ich würde sagen, einer der Pioniere, wenn es um in Deutschland, wenn es um Energieeffizienz von Computer und Software, Rechenzentren geht. Ich muss sagen, ich komme, glaube ich, in keiner Präsentation, die ich mache, komme ich drumherum, wenigstens eine seiner Arbeiten oder eine seiner Ergebnisse irgendwie zu zitieren. Die sind da immer mit drin. Also ist eine, wie ich würde sagen, die Arbeiter auch, ich war gerade noch in der Präsentation zum Blauen Umweltengel für Software, auch da die Kriterien basieren auch ein großes Stück auf deinen Arbeiten. Also ist jemand, der sich wirklich damit auskennt und schon lange beschäftigt und freue mich da jetzt was zu lernen, wie man es selber macht. Ja, also vielen Dank für diese vielen Schmeichelworte. Das ist vielleicht zu viel der Ehre. Tatsache ist, dass ich am Öko-Institut eben zu dem Thema nachhaltige Produktpolitik arbeite, zu nachhaltigen Produkten, zur Entwicklung von Umweltzeichen und so weiter. Und an so einer Stelle hat man natürlich auch ein gewisser Außenwirkung, wenn wir dann alle möglichen blauen Engeln entwickelt haben. Dann kommt man sozusagen nicht drumherum, dann auch sichtbar zu werden. Aber es gibt natürlich ganz viele andere Leute, die tolle Arbeit geleistet haben, auf der wir aufbauen und so weiter. Ich bin gut genug zu hören, ja? Nein? Bei deinem Kopfhörer ja, aber die Menschen hören mich noch nicht so richtig gut. Also die Saallaut sprechen noch nicht so laut. 1, 2, 3, 4, 5, 6, 7. Jetzt wird es besser. Sehr gut. Dankeschön. Okay, hier mit dem Workshop möchte ich ganz bewusst praktisch den Low-Tech-Weg gehen, also das alles nicht ganz so kompliziert zu machen, wie es auch geht. Es geht natürlich auch kompliziert, sondern der Witz daran ist es jetzt möglichst einfach tatsächlich zu machen. Was ich präsentiere, ist auch in diesem Blogbeitrag auf der Seite vom Öko-Institut festgehalten. Wer es schafft, da diesen QR-Code einzufangen, kann es probieren. Ansonsten blogöko.de und dann findet man das auch so. Das sind nicht so viele Beiträge drauf. So, Energieverbrauch von Software. Wir haben mit dem Thema vielleicht vor vier Jahren angefangen, zu thematisieren, dass Software sehr wohl ressourcenrelevant ist, also dass Software dazu führt, dass Computer weggeschmissen werden müssen, weil die Software zu gierig wird und die Hardware nicht mehr stark genug ist. Wir kennen das neues Betriebssystem, kommt raus, da diese Rechnergenerationen werden rausgeschmissen, aber eben auch Software selbst hat tatsächlich einen Stromverbrauch, weil ganz abhängig davon, wie die Software programmiert ist, braucht sie mal mehr oder weniger Rechenkapazitäten, was echt in einem unterschiedlichen Stromverbrauch dieses Server, dieses Computer, dieses Smartphones oder was auch immer endet. Kurz zur Motivation. Wir haben ein Forschungsprojekt gemacht, das wir gar nicht Entwicklung, Anwendung von Bewertungsgrundlagen für und die Ressourceneffizienz von Software und so weiter, wo wir Softwareprodukte verglichen haben, die die gleiche Aufgabe erfüllt haben. In dem Fall ganz links zwei Textverarbeitungsprogramme in der Mitte zwei Browser, rechts drei verschiedene Content-Management-Systeme zur Verwaltung von Webseiten. Und wir haben die Feststellung gemacht, obwohl zum Beispiel diese Textverarbeitungsprogramme welche gemacht haben, die haben den gleichen Text wurde da eingegeben, Bilder eingefügt, Inhaltsverzeichnis und so weiter abspeichern, hat dieses eine Programm viermal so viel Strom gebraucht wie das andere Programm. Das ist erstmal schlimm. Auf die Größenordnung selber, das sind 3,6 Wattstunden, ist nicht so schlimm, aber dieser Faktor ist schlimm. Vor allen Dingen, wenn man weiß, dass dieses Ressourcen hungrige Programm auf den meisten Rechner der öffentlichen Verwaltung und so weiter läuft. Diese Browser haben wir miteinander verglichen und festgestellt, dass ein Browser beim Betrachten der gleichen Webseiten und so weiter doppelt so viel Strom braucht. Bei den Content-Management-Systemen saß nicht ganz so gravierend aus der Unterschied, die haben alle ungefähr gleich viel gebraucht. Also das heißt, es gibt einen Unterschied und was wir da gemacht haben, wir hatten da tatsächlich sehr aufwendiges Equipment vom Umweltkampus Birkenfeld der Hochschule Trier ein Labor und ein tolles Messgerät, was mit Timestamps und so weiter diese Computer gemessen hat. Das haben wir alles nicht, also vor allen Dingen, ihr habt das alles nicht, aber es ist dennoch möglich, genauso was auch an eigenen Rechnern festzustellen. Und ich habe heute mitgebracht so ein Mini-Computer, das ist ein kleiner Linux-Rechner, da ist irgendwelches LO-Buntu oder so was drauf, den habe ich angeschlossen an, da haben wir ein Strom-Messgerät und damit man das schön sehen kann, wenn man da eigentlich hinten sehen, habe ich hier noch so ein Zeigermessgerät angeschlossen, weil das Schöne darin ist, dass der Zeiger dann wirklich zappelt, wenn ich mit dem Rechner was mache. Kurz theoretischer Hintergrund oder methodischer Hintergrund, es gibt einen Zusammenhang zwischen der Leistungsaufnahme eines Servers, also wenn ich jetzt Server sage, dann meine ich diese Kiste oder ich meine eben so ein Computer, der in einem Rechenzentrum reingeschraubt ist, aber im Prinzip ist jeder Computer natürlich auch ein Computer oder ein Server, ist nur so, dass wenn ich dann zusätzlich den Bildschirm mitmesse und alles Mögliche, was da dranhängt, kriege ich vielleicht andere Ergebnisse, als wenn ich so nackten, bildschirmlosen Server daran hänge. Die Kurve, die wir da sehen, ist so eine Performance-Kennzahl, die heißt SpecPower und die wird berechnet, indem die, das ist diese Formel, die da in der Mitte ist, indem die Summe aller Rechenoperationen durch die Summe des Energieverbrauchers geteilt wird und dann kriegt man eben bestimmte Benchmarks raus, wie viel Energie der Server braucht, um diese ganzen Rechenoperationen auszuführen und was man da sehr schön sehen kann, je nachdem wie groß die Target-Load, also die Auslastung dieser Servers ist, unterscheidet sich dieser Energieverbrauch und im Prinzip gibt es eine Kurve, die von dem Eidl Stromverbrauch, also dem Stromverbrauch, wenn der Server nichts tut, wenn er eine 0% Auslastung hat, bis zu 100% Auslastung, gibt es mehr oder weniger eine gerade, wie dieser Stromverbrauch verläuft. Ganz interessant ist in der Tat, dass ein Server auch im Eidl-Modus Stromverbraucht, das heißt, wenn der nichts tut oder wenn der nur sehr wenig tut, dann ist es auch nicht so doll, weil der braucht da nicht nur 10% der Energie, sondern der braucht in der Regel dann 50% oder sogar 60% der Energie. Egal, also auf jeden Fall diesen Zusammenhang gibt es und diesen Zusammenhang werden wir jetzt auch gleich feststellen. Ich habe hier als Messsystem mitgebracht und das kann ich jetzt auch hier in live zeigen, weil ich hier noch nicht so eine Kamera hab, zack, da ist die Kamera, so ein Messgerät mitgebracht und ich werde diesen Computer jetzt mit dem Linux-Befil Stress-CPU eins, das heißt, ein CPU kann Stressen für 60 Sekunden belasten. Auf Windows gibt es so einen schönen Stress-Befilm nicht, also da gibt es auch irgendwas, was man sich installieren kann, aber ich kann, wenn ich zum Beispiel Python auf dem Rechner hab, kann ich einfach hier so eine kleine Rechenaufgabe, die hier Fakultät von 100.000 Ausrechnen, das braucht auf jeden Fall auch eine Weile und schaffe es dadurch, ein Prozess zu starten, der ein CPU-Kern dann voll auslastet und genau das mache ich jetzt hier bei dem Rechner. Was passiert, dieser Zeiger ist nach oben gegangen und bei meinem Messgerät hat dieses Messgerät gerade von 4,3 auf 5,8, 5,9 Watt, der nimmt insgesamt nur, sehen wir gleich, wenn es voll ausgelastet ist, eine bestimmte Menge auf. Um da noch mehr Klarheit reinzubringen, habe ich jetzt hier noch so ein zweites Fenster mitgebracht, das hier nämlich, es gibt auch in Linux so einen schönen Befehl, Hardtop heißt der, der zeigt mir, welche erstens wieviel CPU-Kerne es gibt und wieviel davon ausgelastet sind und wir sehen einer, nämlich dieser dritte Kern ist gerade ausgelastet, weil die 60 Sekunden noch nicht vorbei sind, wenn ich den Befehl da oben abbreche, zack, Steuerung C, dann wird auch dieser dritte Kern nicht mehr ausgelastet sein und ich kann im Prinzip den Befehl, den ich gerade abgesetzt habe, mehrfach hintereinander absetzen, das macht man zum Beispiel so, zack, ein CPU-Kern ist ausgelastet, das können wir in diesem Bildchen da unten von dem Hardtop sehen. Ich starte noch ein Prozess, ein zweiter CPU-Kern ist ausgelastet, ich starte noch ein Prozess, ein dritter ist ausgelastet, starte noch ein Prozess, und der vierte Kern ist ausgelastet, also alle vier Kern ausgelastet und hier sollte ich es irgendwann bei 100% angekommen sein. Das heißt, ich habe zufällig diese Skala da auf 100% geeicht, aber was man bei diesem Ding hier sehen kann, ist, dass ich da auf 10,4, ungefähr 11 Watt lande für den Zustand, dass alle vier Kerne ausgelastet sind. Wenn ich jetzt hergehe und noch mehr Kerne auslaste, passiert erstmal gar nichts, weil mehr Kerne sind einfach nicht da, sondern da wird die Arbeitslast zeitlich auf diese vier verschiedenen Kerne verschoben. Dann gibt es hier zwar mehr, da hat es diese Stressprozesse, die gerade laufen, da gibt es noch fünf, gibt es mehr Prozesse, die laufen, führt aber nicht dazu, dass die Leistungsaufnahme des Computers, der hat jetzt sein Maximum erreicht, 10,4, 10,5 Watt, dass die darüber hinausgeht. Zurück zu meiner Präsentation. Zack! Das sind die relevanten Befehle, also Hardtop, um diese schöne grafische Darstellung der CPU-Auslastung darzustellen und ich kann jetzt auch so machen können, dass ich die Anzahl der CPU-Kerne, die da belastet werden sollen, direkt eingebe. Und wozu führt das? Das führt zu einer steigenden Leistungsaufnahme, je nachdem, wie viele CPU-Kerne ich beanspruche, die dann irgendwann stagniert, weil ich habe es jetzt hier 11 Watt genannt oder das letzte Mal hat da vielleicht noch ein USB-Stick drin gesteckt, deshalb hatte es wirklich 11 Watt gehabt, jetzt sind es nur 10,4, 10,5 Watt. Das heißt, ich kann unmittelbar den Zusammenhang zwischen CPU-Auslastung und Stromverbrauch sehen. Zweitens noch mal zur Theorie. Was passiert, wenn ich ein Befehl ausführe am Computer, dann kriege dieser Prozess, den ich starte, eine Prozess-ID. Es wird ein CPU-Kern belegt. Und wenn ich jetzt hergehe und mehrere Prozesse gleichzeitig auf ein CPU-Kern zu schicken, dann teilen die sich diese CPU-Zeiten zeitlich auf. Was aber gleich bleibt für die Ausführung eines jeden Programms, ist die Summe aller CPU-Zeiten. Also das heißt, was hier oben als blaue Balken dargestellt sind, wird dieser Prozess ganz egal, ob er am Stück ausgeführt wird oder ob er zeitlich zahakt ausgeführt wird, immer diese Summe an CPU-Zeiten, also an blauen Schnippeln hintereinander gestapelt brauchen. Also hier oben CPU-Zeit gleich sechs Stütter, zum Beispiel der hätte jetzt sechs gebraucht. Das kann er wie gesagt entweder in einem Rutsch verbrauchen oder in dem es aufgehackt ist. Wichtig ist, dass ich zu dieser Prozess-ID, die automatisch vergeben wird, die CPU-Zeiten, die tatsächlich laufen, laufen wird, also nicht die Zeiten, wie das Programm gebraucht hat, sondern wie viel CPU-Zeiten sie in Anspruch genommen hat, das Programm, dass ich das mitträcke. Unter Linux kann ich die Prozessstatistik auswerten indem ich zum Beispiel PSI eingebe, dann wird die Prozessstatistika, es ist vielleicht sogar, wird mir ausgegeben und ich kann mir aus diesen Ausgaben, die jetzt hier sind, jene Prozesse rausfischen, für die ich mich interessiere. Da steht ja Command und dann irgendwie Sys-EMD und sonst was, das sind die Namen, unter denen diese Prozesse aufgerufen wurden. Warum ist das interessant? Weil ich jetzt genau hergehen kann und mir mitten im kleinen Skript die Prozesslaufzeiten rausfischen kann, die für ein bestimmtes Programm zuständig sind. Vielleicht springen wir nochmal, also das Skript heißt Software Footprint Pi und das ist da unter diesem GitHub-Repository verfügbar und auch bei dem Blogartikel verfügbar und das macht nichts anderes als eine Schleife durchzulaufen zu schauen, wird dieser Prozess aufgerufen mit dem jeweiligen Namen und wie viel CPU verbraucht er und jetzt kann ich damit noch ein bisschen rechnen. Jetzt kann ich nämlich mit der CPU-Zeit in Anspruch genommen wurde. Also ich weiß, 4 Kerne auszulasten bei diesem Computer zum Beispiel führt zu 11,4 Watt Stromverbrauch, habe ich bloß 1 Kerne ausgelastet, das ist also ein Viertel dieses Stromverbrauchs und diese Watt kann ich mit der Zeit der in Anspruch genommenen CPU-Laufzeit multiplizieren, kriegt dann Wattsekunden oder Wattstunden oder Kilowattstunden oder was auch immer, also ein Energieverbrauch und den Energieverbrauch kann ich wieder mit einem Faktor die CO2-Emissionen, die damit zusammenhängen zur Stromproduktion multiplizieren. Das heißt, aus dieser Prozesslaufzeit kriege ich den Energieverbrauch des jeweiligen Programms und die CO2-Emission. So wird dieses Programm aufgerufen und wir können das auch mal Testhalber machen und wie gesagt, jeder von euch kann das auch machen, indem er sich dieses Ding einfach mal... geht das eigentlich so hier, klar? Ja, runter lädt. Schauen wir uns das hier noch an. Schauen wir uns das hier noch an und schauen wir uns das hier an und die Kamera, falls man das nicht da oben nicht gut genug sehen kann, pack ich jetzt noch mal hier drauf. So, zack. So, das heißt, an der Stelle rufe ich jetzt das Programm auf. Wo mache ich das? Ich rufe das zum Beispiel auf. Sagen wir mal, ich interessiere mich für den Firefox. Ja, ein Mikrofon, genau. Ich interessiere mich für den Firefox. Das heißt, ich suche in der Command List den Namen Firefox und dieses Ding läuft los und wartet erstmal, weil da ist noch kein Firefox. Und um den Firefox aufzurufen, dann muss ich jetzt mal hier noch mal in meiner Präsentation spickeln, weil das ein bisschen tricky ist, weil gar kein Bildschirm angeschlossen ist. Ich muss kurz hier reingehen. Ich muss den Headless aufrufen, also ohne... also die falsche Präsentation. Ich bin ja dumm. Ich muss den aufrufen ohne... ohne Bildschirm. Ach, hier unten. Firefox-Headless-Öko.de, meinetwegen. Oder meinetwegen auch eine blanke Seite. Da zeige ich dieses Zeug hier wieder. Und der Dritte ist... Wo ist der? Also hier unten sehen wir immer noch, der wartet immer noch, dass Firefox in der Liste auftaucht. Und hier oben rufe ich jetzt den Firefox auf. Tut sich was. Headless, Headless, wenn dobbelt es geschrieben. Headless. You're running in Headless-Mode. Und wir sehen dieser Zeiger hier, fängt jetzt an zu zappeln, weil ich Firefox aufgerufen hab. Und nach hier unten ist leider nichts passiert. Warum ist da nichts passiert? Also, jetzt passiert was. Also der unten schreibt jetzt mit, wieviel CPU-Laufzeiten durch diesen Firefox beansprucht werden. Und wenn ich das Programm beende, fängt er mir hier unten an, die Wattsekunden auszurechnen, die mit den Firefox verbraucht wurden und die Gramm-CR2-Emission auszurechnen. Das heißt, ich kann sozusagen dieses kleine Skript Software Footprint auf jedes Programm, was einen eigenen Namen hat, loslassen. Ich kann das auch auf meinem Windows-Rechner beispielsweise, auf irgendwelchen Skype-Prozesse oder irgendwelchen Dropbox-Prozesse da im Hintergrund rumgerückt loslassen und schauen, was dieser Prozess, den ich eigentlich überhaupt gar nicht nutze, auf dem Hintergrund für CPU-Kapazitäten bzw. für Strommengen verbraucht hat. Und ich kann auch, wenn ich zum Beispiel mit diesem Firefox unterschiedliche Webseiten besuche, schauen, was der Firefox zum Aufrufen dieser Webseiten an zusätzlichen Strom verbraucht hat. Und das habe ich hier auf der nächsten Folie. Ups, ist es da. Zack. Ganz unten als Baseline die blaue Kurve about blank, eine leere Seite-Aufrufe, wo nichts zu sehen ist. Und dann verschiedene Seiten, unsere Öko-Seite, die Amazon und dann Web.de als Portal, wo es viele Bilder und viele Wackelbilder und Videos und so weiter eingebunden sind. Und ich kann den Stromverbrauch, den zusätzlichen Stromverbrauch zwischen diesen Varianten transparent machen, sichtbar machen und mir natürlich auch CO2-Fußabdrücke ausrechnen. Und wie gesagt, das geht nicht nur für Programme, die ich selber programmiert habe, wenn ich natürlich selber irgendwelches Python-Crib programmiert habe und vor allen Dingen dann nachoptimieren möchte, welcher Algorithmus ist möglicherweise sparsamer als ein anderer, dann ist das natürlich super, dann kann ich das machen. Aber ich kann es eben auch mit Fremdsoftware, wo ich überhaupt keinen Einblick rein habe, kann ich die miteinander vergleichen. Ich kriege hier schon gefährliche Blicke zugeworfen, das heißt, wir sind gleich am Ende. Ja, okay. Das ist die Möglichkeit, da nochmal der QR-Code um auf diese Webseite zu kommen und wie gesagt, das soll so banal sein, wie es ist, man kann es wesentlich komplizierter machen und mit Sicherheit auch noch genauer machen, noch den Rahmen untersuchen, das Netzwerkverkehr untersuchen und sonst was, aber um so einen ersten Einblick zu kriegen, wie Software und Stromverbrauch zusammenhängen, ist das glaube ich ein ganz guter Ansatz. Vielen Dank. Vielen Dank. Jetzt im Anschluss hier noch eine weitere Veranstaltung haben, können wir jetzt leider nicht noch viele Fragen machen, aber du stehst bestimmt sicherlich noch vor der Tür zur Verfügung. Okay, vielen Dank.