Do You Write Green Software?

Power lines

QCon 2007 was a great opportunity to hear the architects of some of the largest Internet sites discuss the challenges they’ve had. One particularly interesting challenge was discussed by Dan Pritchett, Technical Fellow at eBay, Inc. He spoke about the challenges of providing enough power and air conditioning to eBay’s data centers. I’m not sure how accurate this statistic was, but he mentioned a 3 million watt power requirement for their northern California data center. The problem is that the local electricity provider is reaching the limits of their ability to provide that much power. This, in turn, limits ebay’s ability to scale at this physical location.

This problem is not unique to eBay. For example, CNet News reports that “a Google engineer has warned that if the performance per watt of today’s computers doesn’t improve, the electrical costs of running them could end up far greater than the initial hardware price tag.” The Gartner group reports that IT energy costs will increase from 25-30% to 40% within 5 years. A report from Lawrence Livermore Laboratories says that data centers will be using more electricity than the 275 million televisions in the United States. The Wall Street Journal reports that one large data center can consume as much power as a small city of 30,000-40,000 people.

There are several ways to respond to these challenges. The most common approaches are to buy more efficient hardware or to place data centers near cheap and abundant power. This is reportedly one reason for Google’s interest in creating a data center in North Carolina. However, Dan Pritchett spoke of another option: writing more energy efficient software. He estimates that inefficient programming techniques may increase eBay’s energy consumption by 25-30%. This limits scalability of their data center given the limits of the power companies to provide energy, but it also results in huge amounts of wasted money for large data centers.

It’s a very interesting idea. Computationally efficient software would also generally be more energy efficient. What other techniques can we use to optimize power efficiency for “green software development”?