Virtualizing Intermittent Computing

Intermittent computing requires custom programming models to ensure the correct execution of applications despite power failures. However, existing programming models lead to programs that are hardware-dependent and not reusable. This paper aims at virtualizing intermittent computing to remedy these problems. We introduce PureVM, a virtual machine that abstracts a transiently powered computer, and PureLANG, a continuation-passing-style programming language to develop programs that run on PureVM. This virtualization, for the first time, paves the way for portable and reusable transiently-powered applications.

[1]  Brandon Lucia,et al.  Nonvolatile memory is a broken time machine , 2014, MSPC@PLDI.

[2]  Brandon Lucia,et al.  Chain: tasks and channels for reliable intermittent programs , 2016, OOPSLA.

[3]  Limin Jia,et al.  I/O dependent idempotence bugs in intermittent systems , 2019, Proc. ACM Program. Lang..

[4]  Brandon Lucia,et al.  Dynamic Task-based Intermittent Execution for Energy-harvesting Devices , 2020, ACM Trans. Sens. Networks.

[5]  Caglar Durmaz,et al.  PureMEM: a structured programming model for transiently powered computers , 2019, SAC.

[6]  Gerald J. Sussman,et al.  Scheme: A Interpreter for Extended Lambda Calculus , 1998, High. Order Symb. Comput..

[7]  Jacob Sorber,et al.  Flicker: Rapid Prototyping for the Batteryless Internet-of-Things , 2017, SenSys.

[8]  Abu Bakar,et al.  Time-sensitive Intermittent Computing Meets Legacy Software , 2020, ASPLOS.

[9]  Brandon Lucia,et al.  Supporting peripherals in intermittent systems with just-in-time checkpoints , 2019, PLDI.

[10]  Brandon Lucia,et al.  Transactional concurrency control for intermittent, energy-harvesting computing systems , 2019, PLDI.

[11]  Brandon Lucia,et al.  Alpaca: intermittent execution without checkpoints , 2017, Proc. ACM Program. Lang..

[12]  Heiko Behrens,et al.  Xtext: implement your language faster than the quick and dirty way , 2010, SPLASH/OOPSLA Companion.

[13]  Brandon Lucia,et al.  A simpler, safer programming and execution model for intermittent systems , 2015, PLDI.

[14]  Brandon Lucia,et al.  Adaptive Dynamic Checkpointing for Safe Efficient Intermittent Computing , 2018, OSDI.

[15]  Ruggero Carli,et al.  Safe Distributed Control of Wireless Power Transfer Networks , 2019, IEEE Internet of Things Journal.

[16]  Luca Mottola,et al.  HarvOS: Efficient Code Instrumentation for Transiently-Powered Embedded Sensing , 2017, 2017 16th ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN).

[17]  Przemyslaw Pawelczak,et al.  InK: Reactive Kernel for Tiny Batteryless Sensors , 2018, SenSys.

[18]  Kevin Fu,et al.  Mementos: system support for long-running computation on RFID-scale devices , 2011, ASPLOS XVI.

[19]  Jacob Sorber,et al.  Timely Execution on Intermittently Powered Batteryless Sensors , 2017, SenSys.

[20]  Brandon Lucia,et al.  A Reconfigurable Energy Storage Architecture for Energy-harvesting Devices , 2018, ASPLOS.

[21]  Luca Benini,et al.  Hibernus++: A Self-Calibrating and Adaptive System for Transiently-Powered Embedded Devices , 2016, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[22]  Arnab Raha,et al.  QuickRecall , 2015, ACM J. Emerg. Technol. Comput. Syst..

[23]  Brandon Lucia,et al.  Camaroptera: a Batteryless Long-Range Remote Visual Sensing System , 2019, ENSsys@SenSys.

[24]  Edsger W. Dijkstra,et al.  Letters to the editor: go to statement considered harmful , 1968, CACM.

[25]  Matthew Hicks,et al.  Intermittent Computation without Hardware Support or Programmer Intervention , 2016, OSDI.

[26]  Brandon Lucia,et al.  Adaptive low-overhead scheduling for periodic and reactive intermittent execution , 2020, PLDI.

[27]  Hyoseung Kim,et al.  Real-Time Task Scheduling on Intermittently Powered Batteryless Devices , 2021, IEEE Internet of Things Journal.