Do You Write Green Software?
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”?
software developer wrote:
Really interesting idea. I’ve never heard about it.
Posted 28 Aug 2007 at 3:53 pm ¶
Tim Van Tongeren wrote:
In a speech by Steve Ballmer, CEO of Microsoft, he said there needs to be a “$100 computer” for people in developing countries (Ricciuti, 2004). Nicholas Negropont, founder and chairman of MIT Media Labs, is developing a sub-$100 laptop (Siddle, 2005). Some are predicting a resurgence of network computers (Cooper, 2004), especially since using thin client machines with no hard drives and storing data on the network, drops power consumption by 80% (Gajjar, 2002). These types of computer would probably run different software than the desktops most Americans buy.
Additionally, U.S. customers from many industries have been complaing about software taking more resources and forcing them to upgrade hardware (Gaudin & Nash, 1998). One accounting firm could not buy older versions of an operating system for new PCs, so their entire network was incompatible. The company thought the only solution was a forced upgrade of the operating system. However, by installing software that worked on both old machines and new machines, the company saved money on upgrade fees (McCreesh, 2002).
There are people in developing countries who cannot afford new software which uses a lot of memory, disk space, or energy. There are people in the U.S. who do not want to upgrade their hardware to run new versions software.
If these trends continue, there will be a movement in the software development industry to develop lean software. Generally, “lean software” refers to the process of using as few resources as possible during software construction, similar to lean manufactuing. However, this “lean software” would be engineered with the intent of consuming fewer resources during operation. Initial development costs may increase, but they would be an investment in lower operating costs over the life of the product.
When we started testing web applications, we realized that the platform changed some of the emphasis of the testing. We started looking more at performance, compatibility, and security. The change to lean software could have us testing for different things once again: the software will operate using fewer resources (less disk space, less memory, less electricity), operate on older computers, and operate for a long period of time.
Sources
Cooper, C. (2004). The second coming of the network computer. CNET News.com. Retrieved from here on Nov 18, 2004.
Gajjar, C. (2002). Sustainable software at the summit: Can software go green, free and cost-effective? WSSD News, Aug 2002. Retrieved from here on Nov 12, 2004.
Gaudin, S. & Nash, K.S. (1998). Retail user groups tackle “bloatware”. Computerworld, Aug 10, 1998. Retrieved from here on Nov 12, 2004.
McCreesh, J. (2002). Introducing sustainable computing. Retrieved from here on Nov 12, 2004.
Ricciuti, M. (2004). Ballmer: We need a $100 PC. CNET News.com. Retrieved from here on Nov 12, 2004.
Siddle, J. (2005). Digital guru floats sub-$100 PC. BBC News. Retrieved from here on Feb 11, 2005.
Posted 11 Sep 2007 at 9:00 pm ¶