Battery life in smartphones ranks high on the list of demands from consumers and manufacturers are competing to produce the best smartphone with the longest battery life. There are a few options to increase battery life; these traditionally involve improving the battery itself and increasing the power efficiency of the hardware, but the efficiency of the software is also critically important to achieve a truly low-power system.
According to Dr Kerstin Eder from the University of Bristol, energy efficient software or “cool code” is the way forward. But why can writing cool code save energy?
Consider this, for a given journey, fuel consumption is mainly dependent on the length of the journey and how fast you drive. However, the way you drive can also affect how much fuel you use. For example, rapidly accelerating drinks fuel. Now, pretend that an app you’ve opened is ‘driving’ your phone. Many apps that are free rely on selling user data, such as location, to third parties. But how much energy is the app using to collect this data? For some apps, around 70% of the energy consumed is for data collection and typically location data. At the end of the day you are paying for the electricity to charge your phone. So is your app really free?
Around a billion of us use a smartphone. The energy that some apps are draining from our phones are not only costing us money but also providing a marked contribution towards global warming through charging the battery more frequently. According to a report on energy efficiency by Digital Power Group, the energy consumed by computing as a whole is 50% more than the aviation industry. It seems that we can no longer hide behind our screens on this issue; computing must be more energy conscious.
Predicting energy consumption in smartphone software is complex. Kerstin’s research group focusses on predicting the energy consumption in small and simple devices such as those supporting the Internet of Things (IoT). Kerstin argues that the best way to achieve energy consciousness is to have “energy transparency from hardware to software. We buy light bulbs by the wattage, why can’t we apply this to computer programs?”
Currently energy is wasted from electrical appliances through heat. Energy is also continuously available in our environment (ambient energy), for example through solar power, thermal energy and the energy from mechanical vibrations. It is possible to harness heat being lost through appliances and from ambient energy and convert it back into electrical energy, known as energy harvesting. IoT devices need to be ultra energy efficient in using the energy they harvest, rather than relying on battery power.
The big idea which Kerstin’s group is working on is that the energy consumed by a computer program can be estimated by analysing its code. Then energy optimisation recommendations can be made. Best of all, they have made this work for IoT applications and processors. These are considerably simpler than the processors that are used in mobile devices, so they provide an excellent first target for code-based energy consumption analysis. More detail can be found in the flowchart below by Kyriakos Georgiou, a Research Associate at the University of Bristol working with Dr Eder.
Needless to say our smart cities of the future will certainly have the IoT deeply embedded in their infrastructure and we will need to work out ways to better protect our data and networks from security attacks for IoT to be truly successful.