Early every February, around five thousand people take over the Free University of Brussels for a weekend for the Free and Open Source Developers’ European Meeting. The attendees at FOSDEM span the whole gamut of society: amateur beginners through to experienced professionals, teenagers just starting out through to silver haired senior citizens who once built valve equipment. The subjects range through open source software, hardware, campaign policy and legal issues.
I, with my colleague Kerstin Eder of Bristol University gave one the main track talks, “Who Ate My Battery?“, looking at the importance of energy efficiency in computing, and why a free and open source approach to solving the problem is essential. This is an issue that affects everything from the climate impact and cost of huge data centres, through domestic energy consumption and phone battery life, right down to the tiniest energy scavenging device. It is a problem to be solved at the scale of both the gigawatt and the nanowatt.
Silicon Labs energy harvesting sensor reference kit (image source: uk.rs-online.com)
It is an area where the hardware engineers have up to now taken a very successful leading role, with techniques such as dynamic frequency and voltage scaling and ubiquitous clock gating. It is no surprise that the Mobile World Congress has seen a slew of oct-core devices announced – it is far more efficient to run 8 cores at a low voltage and frequency than 1, 2 or even 4 at a higher voltage and frequency.
Image source: atmel.com
In our talk, looking at a smaller scale I quoted the example of the 8-bit AVR ATmega2560. At 2MHz and 3.3V it draws just 290 uA when idle – well under a milliwatt, which is already very efficient. But if you don’t need the compute power, drop the frequency to 32kHz and 1.8V and it will draw just 4 uA – well under 10 microwatts.
Kerstin Eder then went on to talk about the various projects in which software engineering is starting to play its part in reducing energy consumption. There are numerous stories about how software can undo the great work of hardware engineers – perhaps the best known being the embedded Linux system which spent 70% of its energy budget waking up to flash a cursor on an attached console!
One of the key problems is giving visibility to the ordinary software engineer of the energy usage. It is easy enough (usually) to measure the size of a program and how fast it runs, but in general energy measurement is hard and expensive — more on that below. We want to be in a position where customers and engineering managers set requirements not just on code size and speed, but on energy usage.
Kerstin is the lead investigator on the EU Energy Transparency (ENTRA) project, which aims to provide ordinary software engineers with tools to see energy consumption. These use models of energy usage by devices, so there is no need for hardware, and are accurate enough to give meaningful results.
Another project that assists the software energy is the Energy Aware COmputing Framework (EACOF), an API, which allows the software engineer to instrument software to measure its energy consumption. The software can then react accordingly. It seems an obvious tool to provide, and what is remarkable is that it was developed by a team of undergraduate students.
ENTRA and EACOF are about empowering the software engineer by giving visibility of energy usage. But a further approach is to provide tools which automatically improve energy efficiency in normal usage.
The MAGEEC project aims to do this for compilers. As I and my colleagues have reported in past posts, we already know that the compiler can make a big difference to the energy used by compiled code. By using the techniques of machine learning we can extend any compiler to generate more efficient code. The MAGEEC project is about half-way through and we have our initial infrastructure working for LLVM and GCC. We’ll be demonstrating these compilers at the Euro-LLVM conference in April and the GNU Tools Cauldron in July.
What is important about ENTRA, EACOF and MAGEEC is that they all draw heavily on open source technology. Energy efficiency is a big challenge for software engineering, and will require multiple approaches if we are to succeed. It will also require the engagement of the entire software engineering community, and so a completely free and open approach is essential.
Copyright 2014 Ludovic Hirlimann, CC BY-SA 2.0
This is by far the largest and most general audience we have ever addressed on the subject. Up to now we have spoken to small, largely specialist technical audiences. But at FOSDEM we were in the largest lecture theatre of a very large university, and we were speaking to hundreds of people from a wide range of disciplines. We need energy efficiency to become a mainstream topic if we are to solve all the problems it encompasses. Don’t worry if you missed the lecture; you
can watch it online.
I mentioned at the start of this post, that energy measurement hardware is very expensive. However this is no longer the case. As part of the MAGEEC project, we have developed a low cost energy measurement board, costing around $30 to manufacturer, even in small volumes. It allows energy in the microwatt and milliwatt range to be measured, sampling up to 6 million times per second. A completely open design of course.
We took 50 of these boards to FOSDEM. In my next post I’ll talk about the energy measurement workshop we ran on day 2 of this conference.