The amount of electricity required to run today’s computers, data centers and mobile devices is increasing rapidly and this growing hunger for power makes the digital world a significant greenhouse gas contributor. Most energy saving projects so far have focused on more efficient cooling systems or energy-saving power modes, but researchers from the University of Washington believe that error tolerant programming could be more effective at slashing energy usage.
The researchers have created a system, called “EnerJ,” that they say reduces energy consumption in computing simulations by up to 50 percent, and has the potential to cut energy by as much as 90 percent. Their research will be presented at the Programming Language Design and Implementation annual meeting in San Jose next week.
EnerJ takes advantage of computational processes that can survive tiny errors. Some examples of possible applications are streaming audio, video and games, where small errors are unnoticeable. “If you can afford one error every 100,000 operations or so, you can already save a lot of energy,” study co-author Luis Ceze said.
The system is a general framework that creates two interlocking pieces of code. One is the precise part – for instance, the encryption on your bank account’s password. The other portion is for all the processes that could survive occasional slipups. The team believe they can efficiently keep the two processing areas separate. “We make it impossible to leak data from the approximate part into the precise part,” co-researcher Adrian Sampson said. “You’re completely guaranteed that can’t happen.”
The system would be optimized for new microprocessor hardware where some transistors would operate on a lower voltage. Approximate tasks could run on these “dimmer” regions of the chip where the risk of random errors is increased.
Simulations of such hardware show that running EnerJ would cut energy by about 20 to 25 percent, on average, depending on the aggressiveness of the approach. For one program the energy saved was almost 50 percent. The researchers are now designing hardware to test their results in the lab.
The study notes that today’s computers could also use EnerJ with a purely software-based approach. For example, the computer could round off numbers or skip some extra accuracy checks on the approximate part of the code to save energy. Combining the software and hardware methods, the researchers believe they could cut power use by about 90 percent.
“Our long-term goal would be 10 times improvement in battery life,” Ceze said. “I don’t think it is totally out of the question to have an order of magnitude reduction if we continue squeezing unnecessary accuracy.”