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 optimize its performance. If compilers are not optimized 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 optimize 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 optimizations. The machine-learning technology analyzes 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 analyzing 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.
The Milepost team has launched a code tuning Web site 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 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 multicore and heterogeneous platforms and we will be looking at dynamic online adaptation," he says.
But as workloads change, can hardware and software be reconfigured to make it adaptable to the fine grain and big scalability challenges involved when moving from 2, 4 or 8 cores to thousands of cores on a chip? This is a big question facing developers of the future. They will be looking to the Milepost researchers to answer it.
The Milepost project received funding from the ICT strand of the Sixth Framework Program for research.
From ICT Results
No entries found