Paper Title
"Apprehending Joule Thieves with Cinder"
Authors
Rumble, Stephen M., Stutsman, Ryan, Levis, Phil, Mazières, David, and
Zeldovich, Nickolai
Date
MobiHeld 2009 (co-located with SIGCOMM)
Novel Idea
The authors propose Cinder, an operating system in which energy usage,
like CPU usage, is a first-class resource. Cinder applications are
charged for their energy usage and the system/user can develop
policies to regulate the usage. The model of energy usage is known as
the "capacitor", which has an input rate (Watts), can store potential
energy (joules), and has an exponential decay for the PE store. This
way, applications can flexibly use more than their input Wattage in a
bursty fashion, but won't be able to hoard energy (due to the decay).
Main Results
This paper does not contain any detailed results. The authors indicate
that they have started work on this project and ported it to some
basic architectures, made possible due to building on previous HiStar
OS work.
Impact
Unknown, this is recent work. However, the authors will surely
continue working on the project.
Evidence
N/A
Prior Work
Methods for tracking energy usage such as Quanto, Powerscope, and
Odyssey, as well as operating systems which perform a global
accounting of energy usage such as ECOSystem. Cinder is an extension
of the HiStar OS.
Competitive Work
Unknown.
Reproducibility
The HiStar OS is open source, so the Cinder extensions could probably
be developed independently. The current HiStar code with the Cinder
work is also available.
Question
The authors mention that the Linux kernel performs energy-consuming
actions which cannot be attributed to a specific program. What actions
are they, and how should a system like Cinder deal with those actions?
Criticism
The description of multiple threads sharing a same energy-consuming
service such as the GPS is under-developed. How does the system ensure
that no thread benefits unfairly? As a user is developing energy
policies for an application, they may not know whether the device will
have WiFi or 3g or 2g connectivity in the (near/distant) future --
those modes all have different energy requirements. Finally, the
example of an extension which parses the HTML to remove the ads is a
little weak; the code to display the ads will also consume energy, and
thus it should be possible for the browser to intelligently increase a
subcapacitor above the amount set by policy if it will lower the
overall energy consumption.
Ideas for further work
Common components should have well-known energy profiles (eg, code for
network access, sensor access, etc.). Those profiles should be
available to be referenced by the developer automatically so that
developers/users have to set as few parameters as possible. In
general, I would want to wait and see what the first release of Cinder
brings before suggesting further work...