Title :
A Programming Model for Sustainable Software
Author :
Zhu, Haitao Steve ; Lin, Chaoren ; Liu, Yu David
Author_Institution :
SUNY Binghamton, Binghamton, NY, USA
Abstract :
This paper presents a novel energy-aware and temperature-aware programming model with first-class support for sustainability. A program written in the new language, named Eco, may adaptively adjusts its own behaviors to stay on a given (energy or temperature) budget, avoiding both deficit that would lead to battery drain or CPU overheating, and surplus that could have been used to improve the quality of results. Sustainability management in Eco is captured as a form of supply and demand matching, and the language runtime consistently maintains the equilibrium between supply and demand. Among the efforts of energy-adaptive and temperature-adaptive systems, Eco is distinctive in its role in bridging the programmer and the underlying system, and in particular, bringing both programmer knowledge and application-specific traits into energy optimization. Through a number of intuitive programming abstractions, Eco reduces challenging issues in this domain --- such as workload characterization and decision making in adaptation --- to simple programming tasks, ultimately offering fine-grained, programmable, and declarative sustainability to energy-efficient computing. Eco is an minimal extension to Java, and has been implemented as an open-source compiler. We validate the usefulness of Eco by upgrading real-world Java applications with energy awareness and temperature awareness.
Keywords :
Java; decision making; program compilers; public domain software; sustainable development; Eco; Java applications; decision making; energy awareness; energy optimization; energy-adaptive system; energy-aware programming model; energy-efficient computing; intuitive programming abstractions; open-source compiler; programming tasks; supply and demand matching; sustainability management; sustainable software; temperature awareness; temperature-adaptive system; temperature-aware programming model; workload characterization; Batteries; Calibration; Java; Programming; Runtime; Software; Thermal management; energy management; programming models; sustainability; thermal management;
Conference_Titel :
Software Engineering (ICSE), 2015 IEEE/ACM 37th IEEE International Conference on
Conference_Location :
Florence
DOI :
10.1109/ICSE.2015.89