A new European Union research project, called ENTRA, has come up with an experimental software prototype based on programming semantics that tells programmers how much energy will be consumed as a result of the code they are writing. http://entraproject.eu/
According to ENTRA coordinator Professor John Gallagher, of Roskilde University in Denmark, the ENTRA tool runs alongside the program and, through code analysis and energy modelling, shows how much the code is going to cost the computer in terms of energy use, and what the impact of design decisions on energy use will be.
“Compare it to the fuel efficiency of a car,” he said. “We think of that being the property of the car. You buy a car and it is supposed to consume 8 litres per 100 km or whatever, but of course that depends on the way you drive it.
“The same is true for computing. You think of energy being associated with the hardware, but it seems that potentially more energy is savable at the software level with the same hardware, rather than putting a lot of effort into developing more energy-efficient hardware. That’s where the ENTRA project comes in.”
Energy usage the programmer can see
The ENTRA project focuses on energy efficiency as a design goal and aims to bring energy efficient products by IT companies – quicker to market. The ENTRA tool shows energy use in terms of Watts (power consumption) or in absolute energy requirements (the energy needed to finish the task) depending on the speed of the processor (GHz).
Rather than having to wait until the program is installed and running on a machine and then measuring its energy (often too late to do anything about it), the programmer gets an early picture (Figure 1 below ) from the energy predictions in the code.
The energy consumption of computers has become a major concern, both environmentally in terms of carbon footprint, and practically through the need for greater battery life. The huge growth in cloud computing over the past decade has meant data centres have become very large consumers of energy. Power is needed not just for cooling, but also to process and transport data. The ENTRA approach can help both with the programming and with scheduling of tasks to minimize energy.
Saving smartphone batteries
As the demand for computing power increases exponentially, software applications will need to be designed in an energy-efficient way to allow smaller batteries to be charged less frequently.
With an eye on meeting these challenges, the ENTRA prototype is being tested on three typical energy-hungry components: real-time audio processing, robot and motor control, and real-time networking. The software defining them is being run on hardware at XMOS in Bristol, United Kingdom.
Researchers in the project are seeing in these case studies that energy savings could be at least 20-50 percent, e.g. by compacting programs, and optimizing timing of operations to permit lower processor speeds.
XMOS plans to add ENTRA components for energy optimization into its tool-chain. The ENTRA results are also being exposed to internationally leading companies such as ARM and ST Microelectronics, and world leading academics in energy-efficient computing at the EACO (Energy Aware COmputing) workshops.
Scaling up ENTRA’s results to system level is feasible, said Professor Gallagher. “The whole approach is independent of any particular hardware or application domain in the sense that it is based purely on the programming language semantics and a general energy model. So we could apply the same techniques to high performance computers,” he pointed out..