Enabling Development of Energy-Efficient Software

Inherent in today’s computing environments are concerns about battery life, heat creation, fan noise, and overall potentially high energy costs. Research has shown that energy usage, the driving factor behind these concerns, can be reduced in many ways, including by developing energy-efficient software. Unfortunately, few software engineers design and implement software with consideration for its energy usage. The PIs’ recent empirical study of more than 450 practitioners’ perspectives on green software engineering revealed that this is due to two primary deficiencies.

Software Engineers:

  • Do not understand how or why the decisions they make affect the energy consumption of their applications or have incorrect assumptions about the underlying causes of those impacts.
  • Lack tool support to help them discover and apply the appropriate modifications to improve the energy usage of their applications.

This project addresses these needs at the software engineer’s level, enabling practitioners to further improve the energy usage of their applications beyond what can be achieved at the lower system levels.

We will:

  • Broaden the effectiveness of the decision support tools by conducting empirical studies of software engineering decisions to identify high-level, widely applicable, and energy impacting change.
  • Develop decision support analyses and tools to help software engineers discover and apply changes that reduce the energy usage of their applications—while both writing new software and maintaining existing code—without the low-level, tedious work in analyzing software, applying changes, and monitoring the resulting impacts to energy usage.
  • Quantitatively and qualitatively evaluate and refine the underlying decision support analyses to ensure that they are both useful and effective.

This project will contribute to the state of the art by developing novel automatic analyses to support decision making with regard to energy usage and will also increase understanding of the energy usage impacts of decisions made at the software engineering level. Moreover, the research involves the understanding of large, complex software systems and focuses on improving their performance.

 

The results of this research will strengthen the ability of developers to manage the energy usage of their applications.

This project is funded by the National Science Foundation Grant NSF 1618161 and NSF 1216488 with PI James Clause and Co-PI Lori Pollock at University of Delaware.