Concerns about battery life, heat creation, fan noise and overall high energy costs have driven the development of more energy-efficient computers and mobile devices over the past two decades.
But the role of software in energy usage has been largely overlooked in the pursuit of more energy-efficient computing. In fact, as the cost of computer memory has decreased and the speed of processors has increased, software programs have expanded to fully exploit the capabilities of the hardware that runs them.
"Unfortunately, few software engineers design and implement software with consideration for its energy usage," says James Clause, an assistant professor in the Department of Computer and Information Sciences at the University of Delaware.
"Studies have shown that this is due to two primary deficiencies: First, software engineers don't understand how or why the decisions they make affect the energy consumption of their applications, and, second, they lack tool support to help them discover and apply the modifications that would improve the energy usage of their applications."
Clause is partnering with Lori Pollock, professor of computer science, to address these needs at the software engineer's level, with an eye toward enabling practitioners to improve the energy usage of their applications.
They recently received a three-year, $516,000 grant, "Enabling and Supporting the Development of Energy-Efficient Software," from the National Science Foundation to support the work.
"We hope to increase understanding of the energy usage impacts of decisions made at the software engineering level," says Pollock. "The project will also contribute to the state of the art through the development of novel automatic analyses to support decision making with regard to energy usage."
The tools and experimental infrastructure developed within the project will be publicly released, which will enable researchers and practitioners to build on the results.