Energy Efficient Computing
Energy is the limiting resource in a huge range of computing systems, from embedded sensors to mobile phones to data centers. We research how to design and build computer systems to manage energy and minimize its consumption. This work includes wireless sensing deployments to measure where energy goes in building-scale computer system, software techniques to track energy at microjoule accuracy on embedded systems, and operating systems for phones that make energy a first-class abstraction. Computing systems account for at least 13% of the electricity use of office buildings. This translates to about 2% of the electricity consumption of the entire US or the equivalent of the State of New Jersey! As computing becomes pervasive, making these systems more efficient is an opportunity to reduce operational costs and have a positive environmental impact. Unfortunately, current understanding of energy consumption in office buildings is too limited and coarse-grained. Without better visibility into how electricity is spent and how much of it is wasted, it is difficult to find ways to reduce it. Powernet - a multi-year power and utilization study of the computing infrastructure in the Computer Science Department at Stanford University - begins to address the visibility problem in one building. Powernet's data is collected via a large network of plug-level wireless power meters and software sensor that cover a significant portion of the 2nd, 3rd, and 4th floors of the Gates building at Stanford. We use the data insights from Powernet to propose a novel system architecture for office computing, Anyware. To save energy, Anyware leverages two observations. First, higher power draw does not translate to proportionally higher performance. Second, there is a range of resources one can have for a fixed power budget. Anyware's hybrid design splits workload execution between a local low-power client device and a virtual machine (VM) on a backend server. Applications that benefit from hardware optimizations, such as video and graphics, remain local; other tasks (document and picture editing, PDF viewing, etc.) are offloaded to the server. Cinder is a new operating system designed to make resource allocation, accounting, subdivision, and delegation explicit, making the system ideal for resource constrained systems like mobile devices and cellular phones. Cinder is based on HiStar. The Cinder kernel runs on both amd64 and ARM architectures. Our current prototype mobile platform is the HTC Dream cellular phone (the Google G1), which presently supports basic functionality including mobile data access.
This work was supported by the Department of Energy ARPA-E program under award number DE-AR0000018, generous gifts from DoCoMo Capital, the National Science Foundation under grants #0832820, #0831163, #0846014 and #0546630, the King Abdullah University of Science and Technology (KAUST), Microsoft Research, scholarships from the Samsung Scholarship Foundation, a Stanford Graduate Fellowship and a Stanford Terman Fellowship.