Algorithms for Sustainable IT
It is now recognized that IT is a significant consumer of energy resources and a substantial source of greenhouse gas pollution. Statistics abound: the Internet produces emissions comparable to the airline industry, an individual server has emissions nearly as large as a car, and IT companies such as Google and Facebook spend millions each month on the electricity bills for their data centers. Perhaps most tellingly, the growth rate of the electricity use of IT in the US is more than 12 times the growth rate of the total US electricity usage.
Consequently, over the last decade a focus on energy-efficient computing has emerged in the computer systems community. This focus has led to dramatic improvements in the energy-efficiency of IT systems. The most celebrated is perhaps the energy efficiency improvement that has been observed in data centers: the Power Usage Effectiveness (PUE) of state-of-the-art data centers is now below 1.1, a huge improvement compared to the PUEs of greater than 3 that were standard just a few years ago.
However, the improvements made to date are only the tip of the iceberg. In particular, to date the majority of improvements in energy efficiency have come from improved "engineering" rather than improved "algorithms". Further, the focus has nearly entirely been on reducing the energy costs of computer systems, rather than on making them more sustainable. In contrast, our work focuses on developing algorithms that can help to improve the sustainability of IT (e.g. data centers and communication networks) by facilitating the integration of renewable energy.
The work in RSRG on the design of sustainable IT systems is part of a larger push on sustainability at Caltech led by the Resnick Institute.
Our work so far
Some examples of ongoing projects in RSRG on sustainable IT are below.
Dynamic capacity provisioning for sustainable data centers
Energy consumption imposes a significant cost for data centers; yet much of that energy is used to maintain excess service capacity during periods of predictably low load. Resultantly, there is considerable interest in developing designs that allow the service capacity to be dynamically resized to match the current workload as well as to adapt to the provisioning to account for current cooling efficiencies, energy prices, and even the current availability of renewable resources in order to move toward sustainable data centers. However, due to the unpredicability of workloads, renewable availability, etc., and the high "switching cost" associated with adapting provisioning and workload management; the design of algorithms for dynamic capacity provisioning is a challenging task. In collaboration with HP Labs, we are working to develop such algorithms and implement them in real data center environments. In fact, algorithms from our group play a role in HP's "Net-Zero Energy Data Center", which has recently been covered by many news outlets (e.g., Wall Street Journal, Data Center Knowledge, Wired, ZDNet, The Register). The Net-Zero Energy Data Center was also recently named a 2013 Computerworld Honors Laureate. For more details on this work, you can see our papers in this area.Geographical load balancing for "follow the renewables" routing
An important feature of Internet-scale systems today is the geographical diversity of the server locations underlying the systems. Typically this diversity is exploited to (i) improve performance, by routing to locations with low latencies, and (ii) reduce costs, by routing to locations with cheap energy prices. In our work, we seek to exploit this diversity to improve sustainability (while maintaining performance and reducing cost), by performing "follow the renewables" routing. Of course, this is a challenging algorithmic task, since the algorithms must be responsive to geographically diverse, non-stationary, unpredictable factors such as renewable availability, temperature, network latency, electricity prices, etc. For details, you can see our papers in the area.Speed scaling to balance energy and performance
Speed scaling has long been used as a power-saving mechanism at a chip level. However, in recent years, speed scaling has begun to be used as an approach for trading off energy usage and performance throughout all levels of computer systems. This wide-spread use of speed scaling has motivated significant research on the topic, but many fundamental questions about speed scaling are only beginning to be understood. For example, even in simple models of speeds scaling systems questions such as the following remain unanswered: How does speed scaling interact with scheduling? What is the impact of the sophistication of speed scaling algorithms? How does speed scaling interact with "fairness"? For details on our work toward answering these and other questions you can see our papers in this area.