Adaptive low-overhead scheduling for periodic and reactive intermittent execution

Batteryless energy-harvesting devices eliminate the need in batteries for deployed sensor systems, enabling longer lifetime and easier maintenance. However, such devices cannot support an event-driven execution model (e.g., periodic or reactive execution), restricting the use cases and hampering real-world deployment. Without knowing exactly how much energy can be harvested in the future, robustly scheduling periodic and reactive workloads is challenging. We introduce CatNap, an event-driven energy-harvesting system with a new programming model that asks the programmer to express a subset of the code that is time-critical. CatNap isolates and reserves energy for the time-critical code, reliably executing it on schedule while deferring execution of the rest of the code. CatNap degrades execution quality when a decrease in the incoming power renders it impossible to maintain its schedule. Our evaluation on a real energy-harvesting setup shows that CatNap works well with end-to-end, real-world deployment settings. CatNap reliably runs periodic events when a prior system misses the deadline by 7.3x and supports reactive applications with a 100% success rate when a prior work shows less than a 2% success rate.

[1]  David E. Culler,et al.  TinyOS: An Operating System for Sensor Networks , 2005, Ambient Intelligence.

[2]  Luca Benini,et al.  Pible: battery-free mote for perpetual indoor BLE applications: demo abstract , 2018, BuildSys@SenSys.

[3]  Alanson P. Sample,et al.  Design of an RFID-Based Battery-Free Programmable Sensing Platform , 2008, IEEE Transactions on Instrumentation and Measurement.

[4]  Maryline Chetto,et al.  A real-time scheduling framework for embedded systems with environmental energy harvesting , 2011, Comput. Electr. Eng..

[5]  Kevin Fu,et al.  Ekho: bridging the gap between simulation and reality in tiny energy-harvesting sensors , 2011, HotPower '11.

[6]  David Wetherall,et al.  Dewdrop: An Energy-Aware Runtime for Computational RFID , 2011, NSDI.

[7]  Anthony Rowe,et al.  Nano-RK: an energy-aware resource-centric RTOS for sensor networks , 2005, 26th IEEE International Real-Time Systems Symposium (RTSS'05).

[8]  Philip Levis,et al.  Multiprogramming a 64kB Computer Safely and Efficiently , 2017, SOSP.

[9]  Christos Margiolas,et al.  Automating efficient variable-grained resiliency for low-power IoT systems , 2018, CGO.

[10]  Maryline Chetto,et al.  Optimal Scheduling for Real-Time Jobs in Energy Harvesting Computing Systems , 2014, IEEE Transactions on Emerging Topics in Computing.

[11]  Henry Hoffmann,et al.  JouleGuard: energy guarantees for approximate applications , 2015, SOSP.

[12]  Prabal Dutta,et al.  The Signpost Network: Demo Abstract , 2016, SenSys.

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

[14]  Amir Rahmati,et al.  Persistent Clocks for Batteryless Sensing Devices , 2016, ACM Trans. Embed. Comput. Syst..

[15]  Arnab Raha,et al.  QUICKRECALL: A Low Overhead HW/SW Approach for Enabling Computations across Power Cycles in Transiently Powered Computers , 2014, 2014 27th International Conference on VLSI Design and 2014 13th International Conference on Embedded Systems.

[16]  Jacob Sorber,et al.  Tragedy of the Coulombs: Federating Energy Storage for Tiny, Intermittently-Powered Sensors , 2015, SenSys.

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

[18]  Yong Wang,et al.  Energy-efficient computing for wildlife tracking: design tradeoffs and early experiences with ZebraNet , 2002, ASPLOS X.

[19]  Tei-Wei Kuo,et al.  Value-Based Task Scheduling for Nonvolatile Processor-Based Embedded Devices , 2016, 2016 IEEE Real-Time Systems Symposium (RTSS).

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

[21]  Philip Levis,et al.  Energy management in mobile devices with the cinder operating system , 2011, EuroSys '11.

[22]  Natalie D. Enright Jerger,et al.  The EH Model: Analytical Exploration of Energy-Harvesting Architectures , 2018, IEEE Computer Architecture Letters.

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

[24]  Natalie D. Enright Jerger,et al.  The What's Next Intermittent Computing Architecture , 2019, 2019 IEEE International Symposium on High Performance Computer Architecture (HPCA).

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

[26]  Qing Wu,et al.  Energy Aware Dynamic Voltage and Frequency Selection for Real-Time Systems with Energy Harvesting , 2008, 2008 Design, Automation and Test in Europe.

[27]  Brandon Lucia,et al.  Intelligence Beyond the Edge: Inference on Intermittent Embedded Systems , 2018, ASPLOS.

[28]  Benjamin Ransford,et al.  Moo : A Batteryless Computational RFID and Sensing Platform , 2011 .

[29]  Mahmut T. Kandemir,et al.  Incidental Computing on IoT Nonvolatile Processors , 2017, 2017 50th Annual IEEE/ACM International Symposium on Microarchitecture (MICRO).

[30]  Mark D. Corner,et al.  Eon: a language and runtime system for perpetual systems , 2007, SenSys '07.

[31]  Alan Edelman,et al.  Language and compiler support for auto-tuning variable-accuracy algorithms , 2011, International Symposium on Code Generation and Optimization (CGO 2011).

[32]  Prabal Dutta,et al.  Capacity Over Capacitance for Reliable Energy Harvesting Sensors , 2019, 2019 18th ACM/IEEE International Conference on Information Processing in Sensor Networks (IPSN).

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

[34]  Narayanan Vijaykrishnan,et al.  Architecture exploration for ambient energy harvesting nonvolatile processors , 2015, 2015 IEEE 21st International Symposium on High Performance Computer Architecture (HPCA).

[35]  Joshua R. Smith,et al.  Fast downstream to many (computational) RFIDs , 2017, IEEE INFOCOM 2017 - IEEE Conference on Computer Communications.

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

[37]  Henry Hoffmann,et al.  Dynamic knobs for responsive power-aware computing , 2011, ASPLOS XVI.

[38]  David C. Snowdon,et al.  Koala: a platform for OS-level power management , 2009, EuroSys '09.

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

[40]  Branko Ristic,et al.  Beyond the Kalman Filter: Particle Filters for Tracking Applications , 2004 .

[41]  Kathryn S. McKinley,et al.  The latency, accuracy, and battery (LAB) abstraction: programmer productivity and energy efficiency for continuous mobile context sensing , 2013, OOPSLA.

[42]  Joshua R. Smith,et al.  Wisent: Robust downstream communication and storage for computational RFIDs , 2016, IEEE INFOCOM 2016 - The 35th Annual IEEE International Conference on Computer Communications.

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

[44]  Henry Hoffmann,et al.  Managing performance vs. accuracy trade-offs with loop perforation , 2011, ESEC/FSE '11.

[45]  Luca Benini,et al.  Real-time scheduling for energy harvesting sensor nodes , 2007, Real-Time Systems.

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

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

[48]  Woongki Baek,et al.  Green: a framework for supporting energy-conscious programming using controlled approximation , 2010, PLDI '10.

[49]  Alan Edelman,et al.  PetaBricks: a language and compiler for algorithmic choice , 2009, PLDI '09.

[50]  Brandon Lucia,et al.  An Energy-interference-free Hardware-Software Debugger for Intermittent Energy-harvesting Systems , 2016, ASPLOS.

[51]  Mahmut T. Kandemir,et al.  NEOFog: Nonvolatility-Exploiting Optimizations for Fog Computing , 2018, ASPLOS.

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

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

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

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

[56]  Alan Burns,et al.  Schedulability Analysis for Real-Time Systems with EDF Scheduling , 2009, IEEE Transactions on Computers.

[57]  Adam Dunkels,et al.  Contiki - a lightweight and flexible operating system for tiny networked sensors , 2004, 29th Annual IEEE International Conference on Local Computer Networks.

[58]  Luca Benini,et al.  Pible: battery-free mote for perpetual indoor BLE applications , 2018, BuildSys@SenSys.

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

[60]  Brandon Lucia,et al.  Intermittent Computing: Challenges and Opportunities , 2017, SNAPL.

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

[62]  Scott A. Mahlke,et al.  Paraprox: pattern-based approximation for data parallel applications , 2014, ASPLOS.

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

[64]  Matthew Hicks,et al.  Clank: Architectural support for intermittent computation , 2017, 2017 ACM/IEEE 44th Annual International Symposium on Computer Architecture (ISCA).