Universitat Politècnica de Catalunya. Departament d'Enginyeria de Serveis i Sistemes d'Informació
Trendowicz, Adam
Jedlitschka, Andreas
Martínez Fernández, Silverio Juan
2026-01-26
Background: The growing energy footprint of AI and software systems has increased interest in understanding software energy consumption. Existing energy consumption estimation methods largely depend on runtime measurements, which hinder early-stage optimization and fine-grained analysis. Despite Python's widespread use, static methods for estimating its runtime energy consumption from source code remain largely unexplored. Objective: This thesis investigates the feasibility of predicting the runtime energy consumption of Python software using static source-code properties alone. The goal is to enable early-stage, fine-grained energy awareness that helps developers identify energy-inefficient code structures without executing the program at inference time. Methodology: We construct a dataset of Python programming tasks, obtain ground-truth energy measurements through controlled execution, and extract structural and semantic features via static analysis at both source code and Bytecode levels. Guided by the CRISP-DM framework, the study comprises a systematic literature review, data understanding and preparation, and the development and evaluation of multiple regression-based and machine learning models. For each model, data formatting operations and hyperparameters are optimized sequentially. Results: The literature study confirmed a lack of Python-focused static EC prediction methods. A dataset of 35,201 observations with 95 features was created and analyzed, showing that energy consumption depends on both code structure and input properties. The best Random Forest and Ridge Regression models achieved median absolute percentage errors of 60.7% and 60.6%, respectively, capturing general energy trends but exhibiting limited accuracy for extreme values. Conclusions: The findings demonstrate the feasibility of statically predicting Python runtime energy consumption, but current accuracy levels are insufficient for reliable practical deployment. Future progress will require richer static representations, improved measurement stability, and larger, more diverse datasets.
Background: El creixent impacte energètic dels sistemes d’IA i del software ha incrementat l’interès per comprendre el consum energètic del software. Els mètodes existents per estimar el consum energètic depenen majoritàriament de mesures en temps d’execució, fet que dificulta l’optimització en etapes inicials i l’anàlisi f ina del codi. Malgrat l’ús generalitzat de Python, els mètodes estàtics per estimar el seu consum energètic en temps d’execució a partir del codi font continuen sent poc explorats. Objectiu: Aquesta tesi investiga la viabilitat de predir el consum energètic en temps d’execució de software Python utilitzant exclusivament propietats estàtiques del codi font. L’objectiu és permetre una consciència energètica primerenca i de gra fi que ajudi els desenvolupadors a identificar estructures de codi energèticament ineficients sense executar el programa en temps d’inferència. Metodologia: Es construeix un conjunt de dades a partir de tasques de programació en Python, s’obtenen mesures d’energia de referència mitjan¸cant execucions controlades, i s’extreuen característiques estructurals i semàntiques mitjan¸cant anàlisi estàtica tant a nivell de codi font com de Bytecode. Guiat pel marc CRISP-DM, l’estudi inclou una revisió sistemàtica de la literatura, la comprensió i preparació de les dades, i el desenvolupament i l’avaluació de diversos models de regressió i d’aprenentatge automàtic. Per a cada model, les operacions de format de dades i els hiperparàmetres s’optimitzen de manera seq¨uencial. Resultats: L’estudi bibliogràfic confirma la manca de mètodes estàtics centrats en Python per a la predicció del consum energètic. Es crea i s’analitza un conjunt de dades de 35,201 observacions amb 95 característiques, que mostra que el consum energètic depèn tant de l’estructura del codi com de les propietats de l’entrada. Els millors models de Random Forest i Ridge Regression assoleixen errors percentuals absoluts mitjans de 60,7% i 60,6%, respectivament, capturant tendències energètiques generals però amb una precisió limitada per a valors extrems. Conclusions: Els resultats demostren la viabilitat de predir de manera estàtica el consum energètic en temps d’execució de software Python, però els nivells actuals de precisió són insuficients per a una aplicació pràctica f iable. Els aven¸cos futurs requeriran representacions estàtiques més riques, una millor estabilitat de les mesures i conjunts de dades més grans i diversos.
Background: El creciente impacto energético de los sistemas de IA y del software ha incrementado el interés por comprender el consumo energético del software. Los métodos existentes para estimar el consumo energético dependen en gran medida de mediciones en tiempo de ejecución, lo que dificulta la optimización en etapas tempranas y el análisis de grano fino. A pesar del uso generalizado de Python, los métodos estáticos para estimar su consumo energético en tiempo de ejecución a partir del código fuente siguen estando en gran medida inexplorados. Objective: Esta tesis investiga la viabilidad de predecir el consumo energético en tiempo de ejecución de software Python utilizando exclusivamente propiedades estáticas del código fuente. El objetivo es permitir una conciencia energética temprana y de grano fino que ayude a los desarrolladores a identificar estructuras de código energéticamente ineficientes sin ejecutar el programa en tiempo de inferencia. Methodology: Se construye un conjunto de datos a partir de tareas de programación en Python, se obtienen mediciones de energía de referencia mediante ejecuciones controladas y se extraen características estructurales y semánticas mediante análisis estático tanto a nivel de código fuente como de Bytecode. Guiado por el marco CRISP-DM, el estudio comprende una revisión sistemática de la literatura, la comprensión y preparación de los datos, y el desarrollo y evaluación de múltiples modelos basados en regresión y aprendizaje automático. Para cada modelo, las operaciones de formateo de datos y los hiperparámetros se optimizan de manera secuencial. Results: El estudio bibliográfico confirma la falta de métodos estáticos centrados en Python para la predicción del consumo energético. Se creó y analizó un conjunto de datos de 35,201 observaciones con 95 características, lo que muestra que el consumo energético depende tanto de la estructura del código como de las propiedades de la entrada. Los mejores modelos de Random Forest y Ridge Regression alcanzaron errores porcentuales absolutos medianos del 60,7% y 60,6%, respectivamente, capturando tendencias energéticas generales pero con una precisión limitada para valores extremos. Conclusions: Los resultados demuestran la viabilidad de predecir de forma estática el consumo energético en tiempo de ejecución de software Python, pero los niveles actuales de precisión son insuficientes para un despliegue práctico fiable. Los avances futuros requerirán representaciones estáticas más ricas, una mayor estabilidad en las mediciones y conjuntos de datos más grandes y diversos.
Bachelor thesis
English
Àrees temàtiques de la UPC::Informàtica::Llenguatges de programació::Python; Àrees temàtiques de la UPC::Informàtica::Intel·ligència artificial::Aprenentatge automàtic; Machine learning; Python (Computer program language); Energy consumption; Enginyeria de software; Consum energètic; Anàlisi estàtica de codi; Feature engineering; Machine learning; Software engineering; Energy consumption; Static code analysis; Feature engineering; Aprenentatge automàtic; Python (Llenguatge de programació); Energia--Consum
Universitat Politècnica de Catalunya
Open Access
Treballs acadèmics [82667]