This column is available in a weekly newsletter called IT Best Practices. Click here to subscribe.
Over the years, "green IT" has become synonymous with hardware that is more energy efficient than previous generations of similar devices or components. For instance, devices might have a power saving mode or power management capabilities that let them draw less power when they are idle. Another example is smarter data center cooling techniques that use less energy despite higher rack density. Certainly there have been many improvements in reducing the energy consumption of servers, storage devices, office printers, laptops and desktop PCs.
Even though devices and components are utilizing less energy individually, the enormous growth of information and communications technology (ICT) globally means that overall ICT electricity consumption is growing at a faster pace than general electricity consumption. According to a report issued by the Network of Excellence in Internet Science, ICT's combined share in the total worldwide electricity consumption grew from about 4% in 2007 to 4.7% in 2012.
Think about that—almost 5% of the world's power is being used by computers. Quite frankly, the energy usage curve for ICT worldwide is not sustainable.
Software is beginning to play a critical role in green IT. The software on ICT systems puts the hardware to work. Thereby, the root cause of ICT energy consumption lies in the software that commands the hardware to start processing. If software can be designed to direct hardware to perform its tasks in a way that utilizes less energy, we might be able to reverse the trend of computers using more and more power each year.
One of the first initiatives of its kind is the Cluster Green Software project in The Netherlands. It is a new technical and scientific regional cluster of organizations working together in the Amsterdam Metropolitan Area. The participating organizations are focused on (1) mapping the energy consumption in large systems which is caused by the use of software, and the search for opportunities to reduce the energy usage of software; and (2) the development of tools for users of large software systems to enable them to manage energy costs. The member organizations are developing a toolkit to stimulate users of data and computing centers through potential savings on energy usage.
The premise behind the Cluster Green Software project is that the principles of efficiency embedded in the software have to be put at the beginning of the energy chain. It's not enough to tell the hardware to go to sleep after the software has run. The better approach is to write the software in such a way that the hardware consumes much less electricity in the first place. If the software is developed in a neutral way so that it can run on different hardware configurations, the efficiencies can be replicated with each use of the software.
One of the first case studies in this project has shown that more intelligent and efficient usage of software can lead to enormous potential savings for greener software: depending on the situation, between 30% and 90%.
One of the project's participants, the Software Improvement Group (SIG), takes the research findings and turns them into actionable advice for companies wanting to improve the energy efficiency of their software. SIG's advisory services are based on accurate measurements and scientific research. SIG helps companies by identifying cost drivers and advising on where to make changes in order to optimize cost.
A research partner in this effort is the Amsterdam University of Applied Sciences Software Energy Footprint Lab (SEFlab). In the SEFLab, collaborative research projects between software specialists from the SIG, electrical engineers from the Amsterdam University of Applied Sciences, and various industry partners, study the influence of software on the energy consumption of computers. Highly accurate energy consumption measurements are taken at high frequencies at various hardware components within servers. The measurements are related to software executed on the server, allowing for energy efficiency comparisons between different software applications, different software architecture design or different source code.
Of course, the goal of all of this research and the various projects is to get software developers to engineer energy-aware software code. The University of Amsterdam already offers a master's track in computer science pertaining to software engineering and green IT. Hopefully we'll see more university programs like this throughout the world to help prepare the next generation of software engineers to reduce the global footprint of ICT energy consumption.
On a closing note, I will leave you with ten best practices for green software that have been provided by the Software Improvement Group. (Get the detailed brochure here.)
- Virtualize – Virtualize all components of the system to allow sharing of the hardware infrastructure.
- Measure – Put measurement infrastructure in place to determine energy KPIs in operation.
- Refresh hardware – Replace older hardware by new hardware that offers higher capacity at lower consumption rate.
- Reconsider availability – Consider tuning down availability requirements that lead to under-utilization.
- Optimize performance – Optimize the system for performance to reduce capacity demands at peak workloads.
- Use energy settings – Use energy-efficient settings offered by hardware and virtualization layer.
- Experiment – Dare to experiment with alternative designs and configurations.
- Limit over-dimensioning – Dimension the system to actual current needs, not to hypothetical future needs.
- Deactivate environments – Activate test and fail-over environments only on demand, not continuously.
- Match workload – Know your workload and dynamically scale the system to match it.