The Effect of Software Change on Power Consumption
Green Mining is a mixture of software power consumption research and mining software repositories research. Essentially green mining is about the effect of software change and software evolution on software power consumption.
The goals of green mining are to investigate and learn from software evolution from a power consumption perspective.
Mobile devices and servers face limits on the amount of electrical power they may draw upon. These limits comes from batteries or the capacity of racks and enclosures. Furthermore more hardware tasks are being moved into software that the software engineer, and even application-level software developers are having a greater impact on the power consumption of a computer system than ever before. Applications affect power usage because they interact with a wide variety of peripherals such as screens, radios, wifi, and speakers. Previous work has focused more on the systems level de- velopers, we want to instead focus on application developers and help them reduce the power consumption of their applications. Thus we want to document the types of changes that impact power consumption. We want to be able to estimate the power consumption induced by new changes to a system. Finally we want to leverage mining software mining repositories research to help us understand how maintenance and evo- lution of software systems affect software power consumption. Reduced software power consumption leads to reduced carbon emitted that could affect the global climate, ar- guably this is the kind of software engineering that can help the world!
Power consumption issues are typically in the hands of electrical and computer engineers responsible for these systems, yet more and more responsibility for power consumption is being shifted to software engineers as their software is directly responsible for device utiliza- tion (e.g., software radio firmware). In particular, applications running on mobile devices can have an extreme effect on power consumption. Applications can consume power in many ways:
- · Computation: The more computation (CPU usage), the greater the power consump-
- tion; and multimedia is particularly challenging for mobile devices.
- · Disk I/O: Reading from a disk often requires stopped disks to spin-up.
- · Memory I/O: Memory needs to be continuously powered to operate.
- · Network I/O: receiving and transmitting over wireless networks is very power intensive.
- · Multimedia: Video and Sound driven applications are very I/O intensive.
Since applications can consume power in many different ways, practitioners seek methods of engineering software to reduce power consumption. While others have suggested models and policies to reduce power consumption that focus on hardware and operating systems, I will develop a research program that helps developers reduce the power usage of application- level software based on an understanding of the impact that certain types of changes have on software power consumption. Questions that this program will address include:
- · What information needs to be gathered to observe and estimate power consumption?
- · What kinds of changes to software affect power consumption?
- · What kinds of software architectures or design patterns reduce power consumption?
- · How do we identify development processes associated with power consumption?
- · What kinds of data-mining techniques do we need to monitor power consumption?
I am specifically looking for interesting candidate students who want to explore Green Mining with me!
Here's a pre-print of the ICSE NIER 2012 Paper:
- Green Mining: Investigating Power Consumption across Versions
Here's a pre-print of the MSR 2012 Paper:
- Green Mining: A Methodology of Relating Software Change to Power Consumption
Here's a demo presentation I gave prior to ICSE NIER in Zurich:
- 30mb [10mins] http://softwareprocess.es/a/green-mining-nier-short.ogv
Here's a presentation I gave to the CS Department of Queens University in Kingston, ON: