Energy Efficient Computing
Just in case you hadn't noticed, computers use a lot of energy! A single server has about the same carbon footprint as 1.5 cars - nearly four tons per year! This number becomes frightening when it is estimated that the amazing speed achieved by major search engines requires around half a million servers! And it is not just these commercial ventures that battle with power usage. We all know that just when you need to make an important phone call, your battery will run out. They never seem to last long enough.
Saving both the planet, and your need to order a pizza at 10pm, has become the goal of the power and energy management work going on at UNSW and NICTA (NICTA is a government funded research institute focusing on ICT that works with UNSW and other major universities). According to David Snowdon, a UNSW PhD student researching at NICTA, the idea is that by running some smart software we can reduce the energy consumed by a computer, thus reducing its carbon footprint and extending battery life.
"To do this, we take advantage of hardware features which are available for throttling. The computer can be slowed, saving power, and then sped up, increasing the power only when appropriate. Unfortunately, we've shown that the problem of choosing the right setting is more difficult than simply running the computer as slowly as possible. In fact, the problem is that sometimes when you run slower, you use more energy, even though the power drawn is less. So, counter-intuitively, reducing the power is nearly always the wrong thing to do. The right setting to choose is effected by the performance of the memory subsystem, multiple throttling knobs, the effect of DC-DC converter efficiency, temperature, fan speed, manufacturing variation, IO power, idle modes, amongst other influences," says Snowdon.
"We've developed a technique which uses mathematical models to accurately estimate the power and performance for a particular program at different settings. We've implemented a power management scheme in Linux, which uses that model at run-time to work out what the most appropriate setting is - with just the right trade-off between performance and energy savings." In short, Snowdon sums the project up as, "saving energy when we can, but getting the best performance when we can't".
Gains have already been realised, but the future promises significant results. "This exciting work is on-going, as we tackle the challenges presented by complex IO subsystems, multi-core processors, and an ever increasing number of available throttling knobs on different platforms."
