(PhysOrg.com) -- 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.
“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.”
The Milepost GCC technology learns to predict the optimal compiler solution for any new program by analysing the execution time of various compiler options and the amount of code in their training programs.
The key technical challenge for the Milepost team was to describe programs and hardware in ways that machine-learning technology could use. That also meant completely redesigning compilers to enable them to use the new machine-learning technology.
Better software performance can open up new opportunities for product suppliers, explains O’Boyle. “If you can run things faster and more energy efficiently, you may be able to choose a different piece of hardware than before - perhaps a cheaper option for the same performance. Alternatively, you could add more functionality without increasing energy usage. You get more for your money.”
French company CAPS Enterprise SAS, one of the participants in the EU-funded Milepost project, planned to include Milepost technologies in its new set of tools. Other participants, including IBM, are using Milepost GCC to get better performance from their processors, making their products more attractive to customers.
Open source auto-tuner
The Milepost team has launched a code tuning website for the compiler development community. Developers can upload their software code to the site and automatically get input on how to tune their code so it works faster.
“This is one of the most successful projects I have been involved in,” says Michael O’Boyle. He and his fellow researchers are now seeking to apply the lessons of Milepost to help solve the challenges of next -generation computer technologies.
“We can use machine-learning technologies to look at multi-core and heterogeneous platforms and we will be looking at dynamic online adaptation,” he says.
But as workloads change, can we reconfigure hardware and software to make it adaptable to the fine grain and big scalability challenges we will have when we move from 2, 4 or 8 cores to thousands of cores on a chip?
This is the big question facing developers of the future. And the smart money will be on the Milepost researchers to answer it.
Explore further: New algorithm can separate unstructured text into topics with high accuracy and reproducibility
More information: Milepost project: www.milepost.eu/