Title: Proactive and Adaptive Energy-Aware Programming with Hybrid Typing
Speaker: Anthony Canino (State University of New York, Binghamton, USA)
Date/time: 2 pm, Monday June 27, 2016
Location: W911, Building West #8, Ookayama Campus, Tokyo Tech
Abstract: Application-level energy management is emerging in the form of frameworks and languages that treat energy management as a first-class concern. One major advantage to this approach is that it helps programmers reason about the energy behaviors of their programs instead of viewing said behaviors as merely a side-effect of computation. We introduce Ent, a novel programming language that encourages proactive and adaptive mode-based energy management at the application level. The proactive model allows programmers to leverage knowledge of their application by characterizing the energy behaviors of different program fragments with modes. The adaptive model allows such characterization to be delayed until run time, useful for capturing dynamic program behaviors dependent on program states, configuration settings, and external battery levels or CPU temperatures. Our key design contribution unifies both models under a hybrid type system with static and dynamic typing, leading to novel energy-aware programming abstractions. In particular, Ent class authors view the their code with an internal-external type distinction that enables localized reasoning of otherwise dynamic energy behaviors. We have implemented Ent as an extension of Java; moreover, Ent ships with an auxiliary library for querying battery and temperature information — abstracting away tedious hardware communication for Ent programmers. Ent has been ported to two mobile-platforms: an Intel CPU laptop and the Raspberry Pi. Empirical studies show Ent may improve the programmability, debuggability, energy efficiency, and productivity of battery-aware and temperature-aware programs. We are currently porting Ent to the Android platform for further evaluation.