Kermit the Frog sang the song, "It’s not easy being Green". We hear more and more about technologies that are also green - green hard disk drives, green servers, and lower power chips. Today, I was reading an article on eWeek that two of IBM’s Blue Gene/Q Supercomputer prototypes appear at the top of the latest Green500 supercomputer list. You can read about the Green500 list at http://www.green500.org/home.php.
For developers, Intel provides an Energy Checker SDK. The SDK gives developers a way to measure the computation done by a computer versus the energy consumed by the computer. The Energy Checker is available free from Intel. You can download the Energy Checker SDK at http://software.intel.com/en-us/articles/download-intel-energy-checker-sdk/. You can also download and read the Energy Checker SDK FAQ at http://software.intel.com/file/25972.
There are more articles, conferences, and resources appearing about sustainable computing and GreenIT. Here are a few of the links I have found:
- Second International Green Computing Conference - July 25-28, Orlando Florida - http://www.green-conf.org/
- Q&A with Google’s green energy czar - http://www.oregonlive.com/business/index.ssf/2010/02/qa_with_googles_green_energy_c.html
- HP Energy and Sustainability Management - http://www8.hp.com/us/en/solutions/solutions-detail.html?compURI=tcm:245-300963
- Capgemini Green IT - http://www.capgemini.com/services-and-solutions/outsourcing/green-it/overview/
- Google Data Centers - http://www.google.com/corporate/datacenter/index.html
- Sustainable Computing dot org - http://www.sustainablecomputing.org/
A Binghamton University computer scientist received a 5 year NSF grant to study how programmers can write energy efficient software - http://discovere.binghamton.edu/features/liu-3583.html. A Microsoft Research paper titled "Green: A Framework for Supporting Energy-Conscious Programming using Controlled Approximation", focuses on "expensive loops and functions". Researchers at the University of Washington have proposed language extensions to Java, called EnerJ, that let developers define type qualifiers for data used in calculations that can be approximated and places in lower power storage on computers.
You can also help cut down energy consumption by profiling your programs to make sure your algorithms and data structures are as efficient as possible. In your Delphi and C++Builder applications, use more event driven programming in place of polling or idling loops. Intel also suggests that taking advantage of multiple threads and multiple cores can save energy. You can find a good list of suggestions and list of tools in the Intel article, "Intel’s Energy Efficient Software Guidelines" at http://software.intel.com/en-us/articles/energy-efficient-software-guidelines/.
Do you have other programming ideas, tricks, and solutions to help us all be more green in our programming?