23-05-2017

Hoe beïnvloed je het energieverbruik van software?

Deel dit bericht

Green software richt zich op reductie van het energieverbruik van applicaties. Omdat feitelijk de hardware de energie verbruikt, zullen metingen op hardwareniveau moeten worden vertaald naar een niveau waar de softwareontwikkelaars iets mee kunnen. In deze blog vertel ik hoe deze vertaalslag er voor een softwareproduct uitziet.

Beheerders van datacentra monitoren het energieverbruik van hun IT-omgeving op globaal niveau, bijvoorbeeld per serverrack. Hierdoor kunnen zij inspelen op veranderingen in de behoefte en zorgen zij ervoor dat applicaties altijd voldoende resources beschikbaar hebben. Dit is essentieel in het geval van Software as a Service (SaaS), zodat te allen tijden kan worden gegarandeerd dat eindgebruikers de dienst naar behoren kunnen gebruiken.

Energiemetingen op het niveau van serverracks zijn echter niet toereikend om het energieverbruik van software te verminderen. Op dit niveau spelen teveel factoren mee (bijvoorbeeld andere software), waardoor het onmogelijk is om energieverbruik eenduidig toe te kennen aan een specifiek stuk software. Hiertoe is een vertaalslag nodig die kan worden gemaakt met de zogenaamde viewpoint catalog.

Viewpoint catalog op energieverbruik
Met de viewpoint catalog kan het ontwerp van desoftware op een gestructureerde manier worden onderzocht. De catalog omvat verschillende invalshoeken die specifieke aspecten van de software zichtbaar maken en wordt gebruikt om te evalueren of de software aan bepaalde eisen voldoet. Is dit niet het geval, dan helpen de verschillende invalshoeken bij het bepalen van een strategie om dat te veranderen.  

Om het ontwerp van de software in verband te brengen met het energieverbruik, zijn er negen kernpunten geïdentificeerd voor de verschillende invalshoeken. Deze kernpunten specificeren welk inzicht een invalshoek moet geven in relatie tot het energieverbruik van een softwareproduct.

1. Allereerst is het belangrijk om te bepalen hoe de software kan bijdragen aan strategische doelen. Dit kan bepalend zijn voor de oplossingsrichting en de metingen die moeten worden uitgevoerd (onder andere hoe gedetailleerd ze moeten zijn). Dus: bedenk welke metrieken relevant zijn in relatie tot een specifiek doel.

2. Gezien de rol van hardware, ligt het voor de hand om te onderzoeken of er optimalisaties kunnen worden doorgevoerd op hardwareniveau. Soms zijn hardwarematige aanpassingen voldoende zijn om een doel te behalen. Dit scheelt weer aanpassing van de software, wat doorgaans een intensiever traject is.

3. Voor een softwarematige oplossing is een overzicht nodig van waar de software wordt uitgevoerd. Hierbij is het van belang om te identificeren welke hardware betrokken is en hoe hiervan het energieverbruik te meten is. In geval van bijvoorbeeld virtualisatie is er ook inzicht nodig in hoe de belasting wordt verdeeld over de hardware.

4. De vertaling van het energieverbruik naar de software wordt gedaan met softwareprocessen. Voor elk proces (of ‘executable’) kan worden gespecificeerd welke hardware dat proces uitvoert. De voorbereidingen bij punt 3 maken het mogelijk om energieverbruik specifiek aan deze processen te relateren.

5. Vanuit softwareprocessen is het mogelijk om de vertaling te maken naar de functionele software-elementen die de processen omvatten. Deze vertaling vormt hiermee de brug tussen software-elementen en de installatie van deze elementen op hardwareniveau.

6. Ook is het belangrijk om bepalen welke processen gelijktijdig kunnen worden uitgevoerd. De truc hierbij is om een optimum te vinden tussen het gelijktijdig uitvoeren van de processen en de middelen die nodig zijn om de uitvoering te coördineren.

7. Vanuit de functionele elementen kunnen we via processen de weg terug volgen naar de hardware. Zodoende kan het energieverbruik per (groep van) functionele elementen worden bepaald en zijn de interessante plekken in de software, de ‘hot spots’, te identificeren.

8. Een prominent onderdeel van een softwareproduct zijn de informatiestromen erin. Om bijvoorbeeld het gelijktijdig uitvoeren van processen mogelijk te maken, dienen de informatiestromen dit toe te laten. Als processen op elkaar moeten wachten voor het verwerken van informatie, is het zaak de stromen te optimaliseren.

9. Nu helder is welke software-elementen interessant zijn in relatie tot het energieverbruik en welke informatie daarbij relevant is, kunnen ontwikkelaars concreet aan de slag. Zij hebben een beperkte context, in plaats van een volledig softwareproduct, waarin zij groene algoritmes kunnen toepassen. Dit beperkt de complexiteit van de werkzaamheden.


green_software.jpg

De flow van de kernpunten geprojecteerd op de viewpoint catalog.


De impact van ontwerpbeslissingen
Om de ontwerpbeslissingen onder controle te houden, is een energy consumption perspective gecreëerd. Een perspective is een set van activiteiten, richtlijnen en bekende oplossingen om ervoor te zorgen dat een systeem voldoet aan de gewenste kwaliteitseisen. Een uitgebreidere toelichting van het energy consumption perspective is te vinden in dit wetenschappelijke paper.

Tot nu was reductie van het energieverbruik van software het voornaamste doel. Maar ontwerpbeslissingen hebben ook impact op andere aspecten van een systeem, waardoor een simpele reductie van het energieverbruik niet altijd de meest duurzame beslissing is voor de lange termijn.

Erik Jagroep is werkzaam bij Centric als consultant en deeltijd promovendus aan de Universiteit Utrecht. Zijn promotieonderzoek richt zich op het ontwikkelen van duurzame softwareproducten.

Partners