Contact Us

Energy aware Programming

 

+Overview:

Power and energy management is crucial for Information Technology (IT) systems of today. Energy management is important in all aspects of computing – in embedded software/systems due to the limitations of battery life, and in data servers owing to overheating and thermal limits.  Due to the wide use of embedded software in controlling popular devices such as smart-phones, energy consumption is increasingly an important attribute to consider in day-to-day programming over and above correctness and performance. It is well-known now that the style of writing a computer program can drastically alter its energy consumption. Yet, little understanding exists at this point relating the programming layer to energy consumption. The proposed project seeks to address this issue.

Conventionally energy management has been accomplished at the processor level or via energy aware compiler optimizations. Bringing in energy awareness at the level of programming environments allows the programmer to make decisions based on energy consumption. It also allows for a dialogue between the programmer and the programming environment in terms of energy consumption. The programmer may provide some guesses about which parts of the program are energy heavy and the back-end of the programming environment can make a quick validation of such guesses. Similarly the back-end analyzer in an energy aware programming environment can make a summary of the energy behaviour of the program and this can be provided to the programmer for possible re-structuring or re-factoring of the program (to reduce energy consumption).

Apart from raising the level of abstraction in system-level energy management, building of energy aware programming environments convey important view-points from the software engineering angle. Currently programmers test their programs, and their associated methods/procedures for correctness and performance. Such testing is undertaken not only post-mortem, but also as the program is being constructed. We believe that in the future energy-aware program testing and debugging will serve as useful techniques in the programmer’s toolkit. In other words, for a program under development, the programmer may want to find test cases which stress the energy consumption of the program. Moreover, having found such test cases which stress the energy consumption of the program – the programmer may want to resort to energy-aware debugging which finds the root-cause of high energy consumption. We wish to emphasize here, that the techniques proposed in this project, are based on novel program path abstractions for summarizing the program’s energy profile, finding out energy stressing test cases, and locating blocks of code with suspected high energy consumption which may be restructured. These will be the main scientific contributions of the proposed project.


+Updates:

  • The positions have been filled up.

+Publications:

[TSE]

EnergyPatch: Repairing Resource Leaks to Improve Energy-efficiency of Android Apps   ( PDF)

Abhijeet Banerjee, Lee Kee Chong, Clement Ballabriga and Abhik Roychoudhury

IEEE Transactions on Software Engineering (TSE), To appear.

 

[MOBILESoft]

Future of Mobile Software for Smartphones and Drones: Energy and  Performance ( PDF )

Abhijeet Banerjee and Abhik Roychoudhury

Invited Paper on Future of Mobile Software Engineering (SE) Keynote

4th IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft) 2017.

 

[MOBILESoft]

Debugging Energy-efficiency related field failures in Mobile apps ( pdf )

Abhijeet Banerjee, Haifeng Guo and Abhik Roychoudhury

IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft) 2016.

 

[MOBILESoft]

Automated Re-factoring of Android Apps to enhance Energy-efficiency ( pdf )

Abhijeet Banerjee and Abhik Roychoudhury

IEEE/ACM International Conference on Mobile Software Engineering and Systems (MOBILESoft) 2016.

 

[ADCOM]

On Testing Embedded Software

Abhijeet Banerjee, Sudipta Chattopadhyay, Abhik Roychoudhury

To appear in Advances in Computers.

 

[FSE-DS]

Static Analysis Driven Performance and Energy Testing

Abhijeet Banerjee

Doctoral Symposium of ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE), 2014.

 

[De-Mobile]

Energy-aware Design Patterns for Mobile Application Development

Abhijeet Banerjee, Abhik Roychoudhury

International Workshop on Software Development Lifecycle for Mobile (De-Mobile), 2014 [Invited talk]

 

[FSE]

Detecting Energy Bugs and Hotspots in Mobile apps (PDF )

Abhijeet Banerjee, Lee Kee Chong, Sudipta Chattopadhyay, Abhik Roychoudhury

ACM SIGSOFT International Symposium on the Foundations of Software Engineering (FSE), 2014.

 

 

[FTEnDA]

Time Predictable Embedded Software on Multi-core Platforms: Analysis and Optimization  (PDF)

Sudipta Chattopadhyay, Abhik Roychoudhury, Jakob Rosen, Petru Eles, Zebo Peng

Foundations and Trends in Electronic Design Automation, 8(3-4), pages 199-356, 2014.

This is a monograph (~150 pages) describing advances in the area.

 


+Current Members:

+Acknowledgements:

This project is funded by a research grant from Ministry of Education (MoE) for three years (2014 - 2017). This support is gratefully acknowledged.


Contact Us
National University of Singapore   |   School of Computing   |   Ministry of Education