Discovering the Hidden Anomalies of Intermittent Computing

Energy harvesting battery-less embedded devices compute intermittently, as energy is available. Intermittent executions may differ from continuous ones due to repeated executions of non-idempotent code. This anomaly is normally recognized as a “bug” and solutions exist to retain equivalence between intermittent and continuous executions. We argue that our current understanding of these “bugs” is limited. We address this issue by devising techniques to comprehensively identify where and how intermittent and continuous executions possibly differ and by implementing them in SCEPTIC: a code analysis tool for intermittent programs. Thereby, we find execution anomalies and their manifested impact on program behavior in ways previously not considered. This analysis is enabled by SCEPTIC design, implementation, and performance. SCEPTIC runs up to ten orders of magnitude faster than the baselines we consider, enabling many types of analyses that would be otherwise impractical.

[1]  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.

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

[3]  Abu Bakar,et al.  The betrayal of constant power × time: finding the missing Joules of transiently-powered computers , 2019, LCTES.

[4]  Junaid Haroon Siddiqui,et al.  On intermittence bugs in the battery-less internet of things (WIP paper) , 2019, LCTES.

[5]  L. Mottola,et al.  Intermittent asynchronous peripheral operations , 2019, SenSys.

[6]  Kevin Marquet,et al.  Sytare: A Lightweight Kernel for NVRAM-Based Transiently-Powered Systems , 2019, IEEE Transactions on Computers.

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

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

[9]  Edward A. Lee,et al.  Modeling Cyber–Physical Systems , 2012, Proceedings of the IEEE.

[10]  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).

[11]  Timothy Scott,et al.  Ekho: realistic and repeatable experimentation for tiny energy-harvesting sensors , 2014, SenSys.

[12]  Rajesh Rajamani,et al.  Novel Batteryless Wireless Sensor for Traffic-Flow Measurement , 2010, IEEE Transactions on Vehicular Technology.

[13]  P. Pillay,et al.  Self-Powered Sensors for Monitoring of Highway Bridges , 2009, IEEE Sensors Journal.

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

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

[16]  Mauro Serpelloni,et al.  Self-Powered Wireless Sensor for Air Temperature and Velocity Measurements With Energy Harvesting Capability , 2011, IEEE Transactions on Instrumentation and Measurement.

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

[18]  Alex S. Weddell,et al.  RESTOP: Retaining External Peripheral State in Intermittently-Powered Sensor Systems , 2018, Sensors.

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

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

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

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

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

[24]  Sivan Toledo,et al.  Storing a Persistent Transactional Object Heap on Flash Memory , 2006, IEEE International Conference on Software-Science, Technology & Engineering (SwSTE'07).

[25]  Jacob Sorber,et al.  Realistic Simulation for Tiny Batteryless Sensors , 2016 .

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

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

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

[29]  Brandon Lucia,et al.  Termination checking and task decomposition for task-based intermittent programs , 2018, CC.

[30]  Luca Benini,et al.  Hibernus: Sustaining Computation During Intermittent Supply for Energy-Harvesting Systems , 2015, IEEE Embedded Systems Letters.

[31]  Kamin Whitehouse,et al.  Clairvoyant: a comprehensive source-level debugger for wireless sensor networks , 2007, SenSys '07.

[32]  Jacob Sorber,et al.  The Future of Sensing is Batteryless, Intermittent, and Awesome , 2017, SenSys.