13.3SEMar 23Code
A Curated List of Open-source Software-only Energy Efficiency Measurement Tools: A GitHub Mining StudyManuela Bechara Cannizza, Michel Albonico
Energy efficiency has become a growing concern in software development, leading to the need for tools designed to measure energy consumption. While several energy measurement tools are available as open-source projects, their characteristics and adoption remain underexplored. This work presents an empirical study based on a Mining Software Repositories (MSR) approach to identify, classify, and analyze software energy monitoring tools publicly available on GitHub. We qualitatively analyzed an initial dataset of 585 repositories to identify key design aspects, including measurement granularity and underlying design principles. After this analysis, we retained 24 repositories as relevant energy measuring software tools. The qualitative analysis we conduct reveals a clear evolution from early CPU-centric and machine-level monitoring utilities toward more diverse tools that support multi-level granularity (process, container, and AI workload levels) and integrate emission estimation capabilities. This study provides the first structured overview of open-source energy and emission measurement tools from an MSR perspective, which may be beneficial for software architects when designing energy-aware software.
DCSep 28, 2012Code
Testing MapReduce-Based SystemsJoão Eugenio Marynowski, Michel Albonico, Eduardo Cunha de Almeida et al.
MapReduce (MR) is the most popular solution to build applications for large-scale data processing. These applications are often deployed on large clusters of commodity machines, where failures happen constantly due to bugs, hardware problems, and outages. Testing MR-based systems is hard, since it is needed a great effort of test harness to execute distributed test cases upon failures. In this paper, we present a novel testing solution to tackle this issue called HadoopTest. This solution is based on a scalable harness approach, where distributed tester components are hung around each map and reduce worker (i.e., node). Testers are allowed to stimulate each worker to inject failures on them, monitor their behavior, and validate testing results. HadoopTest was used to test two applications bundled into Hadoop, the Apache open source MapReduce implementation. Our initial implementation demonstrates promising results, with HadoopTest coordinating test cases across distributed MapReduce workers, and finding bugs.
SESep 12, 2025
Generating Energy-Efficient Code via Large-Language Models -- Where are we now?Radu Apsan, Vincenzo Stoico, Michel Albonico et al.
Context. The rise of Large Language Models (LLMs) has led to their widespread adoption in development pipelines. Goal. We empirically assess the energy efficiency of Python code generated by LLMs against human-written code and code developed by a Green software expert. Method. We test 363 solutions to 9 coding problems from the EvoEval benchmark using 6 widespread LLMs with 4 prompting techniques, and comparing them to human-developed solutions. Energy consumption is measured on three different hardware platforms: a server, a PC, and a Raspberry Pi for a total of ~881h (36.7 days). Results. Human solutions are 16% more energy-efficient on the server and 3% on the Raspberry Pi, while LLMs outperform human developers by 25% on the PC. Prompting does not consistently lead to energy savings, where the most energy-efficient prompts vary by hardware platform. The code developed by a Green software expert is consistently more energy-efficient by at least 17% to 30% against all LLMs on all hardware platforms. Conclusions. Even though LLMs exhibit relatively good code generation capabilities, no LLM-generated code was more energy-efficient than that of an experienced Green software developer, suggesting that as of today there is still a great need of human expertise for developing energy-efficient Python code.
ROMar 25, 2021
Mining Energy-Related Practices in Robotics SoftwareMichel Albonico, Ivano Malavolta, Gustavo Pinto et al.
Robots are becoming more and more commonplace in many industry settings. This successful adoption can be partly attributed to (1) their increasingly affordable cost and (2) the possibility of developing intelligent, software-driven robots. Unfortunately, robotics software consumes significant amounts of energy. Moreover, robots are often battery-driven, meaning that even a small energy improvement can help reduce its energy footprint and increase its autonomy and user experience. In this paper, we study the Robot Operating System (ROS) ecosystem, the de-facto standard for developing and prototyping robotics software. We analyze 527 energy-related data points (including commits, pull-requests, and issues on ROS-related repositories, ROS-related questions on StackOverflow, ROS Discourse, ROS Answers, and the official ROS Wiki). Our results include a quantification of the interest of roboticists on software energy efficiency, 10 recurrent causes, and 14 solutions of energy-related issues, and their implied trade-offs with respect to other quality attributes. Those contributions support roboticists and researchers towards having energy-efficient software in future robotics projects.