Automation technology has revolutionised the fine-tuning needed to maximise software performance on devices such as mobile phones.
Application developers for software on mobile phones and other embedded devices can achieve acceptable performance levels ten times faster thanks to a breakthrough by European researchers.
Human-readable software code needs to be translated into binary code by a compiler if it is to run on hardware. When hardware is upgraded the software’s compiler usually needs to be tweaked or ‘tuned’ to optimise its performance. If compilers are not optimised for the hardware, doubling the processor size or increasing processor speed can actually result in a loss of software performance, not an improvement.
But hardware is changing so quickly compiler developers can’t keep up and compiler optimisation has become a bottleneck in the development process.
Using machine-learning technology, researchers on the Milepost project have developed an automatic way to optimise compilers for re-configurable embedded processors. Whether it is mobile phones, laptop computers or entire systems, the technology automatically learns how to get the best performance from the hardware and the software will run faster and use less energy.
“All the compiler teams at the big companies are rethinking the way they do things as a result of this,” says Professor Michael O’Boyle, from the University of Edinburgh, and project coordinator for Milepost (http://www.milepost.eu/).
“Automation provides compiler developers with leverage to be more experimental. They can try new ideas, new analyses and new optimisations. The machine-learning technology analyses whether it works and when it works. It opens up a whole new area of research and a whole area of performance gains that we couldn’t try before. For instance, we were able to deliver a portable compiler that can work across any future architecture configuration.”