As my previous blog post concluded we had decided upon a selection of algorithms to try out. These were:
- Lazy (kNN)
- Neural Networks
Choosing the right compiler options can drastically reduce the energy consumption of a program. Finding the right way to schedule those options can give equally significant gains. Modern compilers use pass managers to schedule the order in which optimisations are applied, but these aim to reduce some combination of compile time and execution time rather than energy efficiency. I am interested in the task of learning how to predict which sequences of compiler optimisations will minimise energy consumption of a given executable on a given machine. Before this problem can be tackled it is first necessary to obtain data on how performance metrics (such as execution time and energy consumption) are affected by the ordering of optimisations for various benchmarks on various architectures. Part of the Mageec project involves the collection of this data and its storage in a relational database. In this article, I examine a number of relational representations that could be used for this purpose and explain the rationale behind the most promising approach.
The MAGEEC project is delighted to announce that it will be hosting an energy-efficient computing developer room at FOSDEM 2014. The focus for this will be wider than the MAGEEC project, but will remain at the level of energy-aware computing across the system stack. Read more
My name is Munaaf Ghumran, and I am a third year student at Bristol University working on the Machine Learning analysis for MAGEEC.
Finding the Best Flags for a Given Program
The Machine Learning will be used to automatically predict the best set of flags for a given program, based on previously learnt data.
My name is Ashley Whetter, I’m a second year computer science student at Bristol University and I’m working on the energy measurement hardware infrastructure.
As a machine learner, the MAGEEC plugin needs initial training data so that it has an idea of what optimizations will result in a more energy efficient program, given a set of program features.
Using embedded platforms and custom energy monitoring hardware we can accurately measure the amount of energy that a program uses. By automating the loading, running, and measuring of a set of benchmarks, we can easily collect a set of training data for the MAGEEC plugin.
Welcome to MAGEEC—the MAchine Guided Energy Efficient Compiler framework.
MAGEEC is an open source project which combines work on compilation options which save energy with work on machine learning, to create a compiler framework that is capable of generating code that has improved energy efficiency.