About Projects


Green Mining

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!

Firefox 3.6 Power Consumption versus the Past, From Green Mining: Investigating Power Consumption Across Versions, to be published at ICSE 2012 in the NIER Track

Firefox test runs consumption over time, from MSR 2012 Submission "Green Mining: A Methodology of Relating Software Change to Power Consumption"

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:

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:

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:

Here's a pre-print of the MSR 2012 Paper:


Here's a demo presentation I gave prior to ICSE NIER in Zurich:

Here's a presentation I gave to the CS Department of Queens University in Kingston, ON: