Green: A System for Supporting Energy-Conscious Programming using Principled Approximation

Green: A System for Supporting Energy-Conscious Programming using Principled Approximation. Woongki Baek and Trishul Chilimbi. MSR-TR-2009-89

Energy-efficient computing is important in several systems ranging from embedded devices to large scale data centers. Several application domains offer the opportunity to tradeoff quality of service/solution (QoS) for improvements in performance and reduction in energy consumption. Programmers sometimes take advantage of such opportunities, albeit in an ad-hoc manner and often without providing any QoS guarantees. We propose a system called Green that provides a simple and flexible framework that allows programmers to take advantage of such approximation opportunities in a systematic manner while providing statistical QoS guarantees. Green enables programmers to approximate expensive functions and loops and operates in two phases. In the calibration phase, it builds a model of the QoS loss produced by the approximation. This model is used in the operational phase to make approximation decisions based on the QoS constraints specified by the programmer. The operational phase also includes an adaptation function that occasionally monitors the runtime behavior and changes the approximation decisions and QoS model to provide strong QoS guarantees.

The basic approach is not specific to energy considerations, and is basically based on placing approximation code based on profiling data. Energy is measured by sampling current and voltage from the main power cable.

It is nice to see programming language ideas being put to use to help protect the environment...

The system was implemented using the Phoenix compiler framework.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

The Eon language

Thanks for posting the link. Here's some related work (just mailed Trishul to bring it to his attention) from UMass, targeted at embedded systems that harvest energy from the environment, which we dubbed perpetual systems [SenSys 2007].

Eon: a language and runtime system for perpetual systems

Jacob Sorber, Alexander Kostadinov, Matthew Garber, Matthew Brennan,
Mark D. Corner, Emery D. Berger

from the abstract --

This paper introduces Eon, a programming language and runtime system designed to support the development of perpetual systems. To our knowledge, Eon is the first energy-aware programming language. Eon is a declarative coordination language that lets programmers compose programs from components written in C or nesC. Paths through the program ("flows") may be annotated with different energy states. Eon's automatic energy management then dynamically adapts these states to current and predicted energy levels. It chooses flows to execute and adjusts their rates of execution, maximizing the quality of service under available energy constraints.

We demonstrate the utility and portability of Eon by deploying two perpetual applications on widely different hardware platforms: a GPS-based location tracking sensor deployed on a threatened species of turtle and on automobiles, and a solar-powered camera sensor for remote, ad-hoc deployments. We also evaluate the simplicity and effectiveness of Eon with a user study, in which novice Eon programmers produced more efficient efficient energy-adaptive systems in substantially less time than experienced C programmers.

-- Emery

link to Eon page

Forgot to include this --