Automatic software tailoring for Green Internet of Things
José Miguel Aragón-Jurado, Juan Carlos de la Torre, Patricia Ruiz, Bernabè Dorronsoro
Abstract
The proliferation of low-capacity, interconnected Internet of Things devices has increased the need for energy efficient software. Optimizing software performance for specific hardware requires tailored code transformations, as universal compiler optimizations are insufficient. Moreover, the diversity of devices and the software running on them requires automating this process. This work presents a novel combinatorial optimization problem focused on minimizing software energy consumption for specific hardware, and a methodology for solving it that accounts for system uncertainty. Additionally, a novel device for measuring the energy consumption during run time is introduced. This meter synchronizes with the experiments, enabling the automatic optimization of software as a combinatorial optimization problem. Specifically, the problem involves finding an LLVM transformation sequence that minimizes energy consumption during software execution. In our experiments, we considered two different software benchmarks and two embedded devices, using a cellular genetic algorithm to optimize them, alongside five state-of-the-art approaches to manage uncertainty. Our results demonstrate that the proposed methodology successfully overcomes uncertainty, leading to greener solutions with improvements of up to 62.29% in run time and up to 58.21% in energy consumption, outperforming the best generic compilation flags by up to 32.12% in run time and 27.84% in energy consumption.