Ent is a programming language for mode-based energy management at the application level with two design goals: a proactive design that helps programmers apply their application knowledge to by characterizing the energy behavior of different program fragments with mode types, and an adaptive design that allows dynamic program behavior dependent on program states, such as configuration settings, external battery levels, or CPU temperatures, to be captured by the typesystem at runtime. Ent’s proactive and adaptive components are unified under a mixed type system combining static typing and dynamic typing.
Aeneas is an energy optimization framework for Android that provides a minimalistic programming model where acceptable program behavioral settings are abstracted as knobs and application-specific optimization goals — such as meeting an energy budget — are crystallized as rewards. Aeneas is powered by a stochastic optimizer that adaptively and intelligently select the reward-optimal knob setting through a form of reinforcement learning.
Chappie is a novel, general, and customizable runtime design for the energy accounting of Java applications. Given an application, Chappie is capable of attributing the global energy consumption to its logical units — such as a method — with a unique concurrency-aware, cross-layer, and low-overhead design. Chappie is effective for fine-grained application-level energy accounting, even in more challenging scenarios such as multi-threading in an application, co-running applications, foreign applications, system daemons, and thread migration.