Building the reference systems

tl;dr Create our own testbed to measure the power consumption for running the test suite of common open source libraries. The testbed is CI/CD pipeline in which the Runners are on a Kubernetes cluster dedicated server (for now) that has access to the environmental data agent API or is monitored by a tool such as Scaphandre so that we can access or track the underlying power consumption. Each test run should report on power consumption so it can be further analyzed by the research team. The configuration of each test-run/test-subject will also be conducted by the research team.

Roles

Definition

User stories

As a researcher

As an infrastructure operator

<aside> 👉 In the first iteration, this will not be needed, we will only run on our own infrastructure, however, as the project progresses, we do want to enable the owners and maintainers of open source libraries to install the ability to measure power consumption into their own test environments (Gitlab, Github, ...)

</aside>

As a developer

<aside> 👉 In the first iteration, it will only be the researcher role that has access to the infrastructure, developers will only be let on the test infrastructure later

</aside>

Resolver of power consumption

see Github

Resource allocation solver

see Github

Initial ideas

Messmethode Mit welcher Methode/Vorgehensweise und mit welchen Tools messen wir? (bspw. pyRAPL für Python Code oder Birkenfeld Methode für IDEs) Methodik für die IDEs: Birkenfeld-Methode Methodik für die Software-Bibliotheken: Wo gehen wir messen: Compiler, ...

Absolute Zahl per kWh - Indikator Total tests: 14164 (14160 Passed, 4 Failed, 0 Others) Failed tests: 4 (4 New, 0 Existing) Pass percentage: 99.97% Run duration: 30m 14s Tests not reported: 0 Library review: Was gibt es alles an tools, die versuchen solche Messungen zu machen (GitHub)

Entweder es ist VERGLEICHBAR oder WIEDERHOLBAR aber nicht beides. (z.B. Bild/Text Bibliotheken müssten alle die gleiche Funktion Ausführen für Vergleichbarkeit)

Messaufbau Infrastruktur von Green Lab nutzen? Oder eigene Racks dahin bringen Wiederholbarkeit: Tests durchführen, was drum herum bauen? Non Stop Messung

Beispiel Messaufbau Starten der Software Messung der Energiekennzahlen über die DCIM Schnittstelle von der Hardware Messung der Energiekennzahlen über die Strommesser (externe Validierungsdaten für die DCIM Daten) Erfassen von Laufzeitinformationen (Auslastung CPU, Speicher, etc.) Stoppen der Software

Ergebnis: Ein wiederholbarer Messaufbau, der eine reibungslose Messung gewährleisten