AAU Student Projects - visit Aalborg University's student projects portal
A master's thesis from Aalborg University
Book cover


IDE Extension for Reasoning About Energy Consumption

Authors

; ;

Term

4. term

Education

Publication year

2021

Pages

87

Abstract

Vi har udviklet en udvidelse til udviklingsværktøjet Visual Studio Code, der hjælper udviklere med at forstå og estimere et programs energiforbrug, både på program- og funktionsniveau. Udvidelsen understøtter tre måder at få energiestimater på: to statiske metoder (før programmet køres) baseret på henholdsvis maskinlæring og en energimodel, samt en dynamisk metode (mens programmet kører) ved hjælp af RAPL-målinger. Til den statiske analyse byggede vi en fortolker for CIL, et mellemliggende lavniveausprog, som tæller hvor mange gange hver CIL-instruktion forekommer; disse optællinger bruges til at anslå energiforbruget. For at vurdere nøjagtigheden bruger vi de dynamiske målinger som facit (ground truth) og sammenligner de statiske estimater med dem. Resultaterne viser, at ikke-lineære maskinlæringsmodeller giver bedre estimater end energimodellen og de lineære modeller. Energimodellen er bedre end de fleste lineære modeller, bortset fra lasso-regression. Den metode med mindst fejl er random forest. Dermed kan udviklere lettere overveje energieffektivitet direkte i deres editor.

We built an extension for the Visual Studio Code editor that helps developers understand and estimate how much energy their programs use, both at the program level and for individual functions. The extension supports three ways to obtain energy estimates: two static methods (before the program runs) using machine learning and an energy model, and one dynamic method (while the program runs) using RAPL measurements. For the static analysis, we implemented an interpreter for CIL, a low-level intermediate language, that counts how many times each CIL instruction occurs; these counts are used to estimate energy use. To assess accuracy, we treat the dynamic measurements as ground truth and compare the static estimates against them. Our results show that non-linear machine learning models produce better estimates than the energy model and the linear models. The energy model outperforms most linear models, except lasso regression. The lowest-error approach is the random forest model. This makes it easier for developers to consider energy efficiency directly in their editor.

[This summary has been rewritten with the help of AI based on the project's original abstract]