skip to main content
research-article

Fast and Energy-Efficient State Checkpointing for Intermittent Computing

Authors Info & Claims
Published:29 September 2020Publication History
Skip Abstract Section

Abstract

Intermittently powered embedded devices ensure forward progress of programs through state checkpointing in non-volatile memory. Checkpointing is, however, expensive in energy and adds to the execution times. To minimize this overhead, we present DICE, a system that renders differential checkpointing profitable on these devices. DICE is unique because it is a software-only technique and efficient because it only operates in volatile main memory to evaluate the differential. DICE may be integrated with reactive (Hibernus) or proactive (MementOS, HarvOS) checkpointing systems, and arbitrary code can be enabled with DICE using automatic code-instrumentation requiring no additional programmer effort. By reducing the cost of checkpoints, DICE cuts the peak energy demand of these devices, allowing operation with energy buffers that are one-eighth of the size originally required, thus leading to benefits such as smaller device footprints and faster recharging to operational voltage level. The impact on final performance is striking: with DICE, Hibernus requires one order of magnitude fewer checkpoints and one order of magnitude shorter time to complete a workload in real-world settings.

References

  1. Saurabh Agarwal, Rahul Garg, Meeta S. Gupta, and Jose E. Moreira. 2004. Adaptive incremental checkpointing for massively parallel systems. In Proceedings of the 18th Annual International Conference on Supercomputing. ACM, 277--286.Google ScholarGoogle Scholar
  2. Saad Ahmed, Naveed Anwar Bhatti, Muhammad Hamad Alizai, Junaid Haroon Siddiqui, and Luca Mottola. 2019. Efficient intermittent computing with differential checkpointing. In Proceedings of the 20th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems. ACM, 70--81.Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Faycal Ait Aouda, Kevin Marquet, and Guillaume Salagnac. 2014. Incremental checkpointing of program state to NVRAM for transiently-powered systems. In Proceedings of the 9th International Symposium on Reconfigurable and Communication-Centric Systems-on-Chip. IEEE, 1--4.Google ScholarGoogle Scholar
  4. ARDUINO. 2018. NANO. https://store.arduino.cc/usa/arduino-nano (accessed 2018-02-28).Google ScholarGoogle Scholar
  5. Satu Arra, Jarkko Leskinen, Janne Heikkila, and Jukka Vanhala. 2007. Ultrasonic power and data link for wireless implantable applications. In Proceedings of the 2nd International Symposium on Wireless Pervasive Computing.Google ScholarGoogle ScholarCross RefCross Ref
  6. Domenico Balsamo, Alex S. Weddell, Anup Das, Alberto Rodriguez Arreola, Davide Brunelli, Bashir M. Al-Hashimi, Geoff V. Merrett, and Luca Benini. 2016. Hibernus++: A self-calibrating and adaptive system for transiently-powered embedded devices. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems (2016), 1968--1980.Google ScholarGoogle Scholar
  7. Domenico Balsamo, Alex S. Weddell, Geoff V. Merrett, Bashir M. Al-Hashimi, Davide Brunelli, and Luca Benini. 2015. Hibernus: Sustaining computation during intermittent supply for energy-harvesting systems. IEEE Embedded Systems Letters (2015), 15--18.Google ScholarGoogle Scholar
  8. Naveed Bhatti and Luca Mottola. 2016. Efficient state retention for transiently-powered embedded sensing. In Proceedings of the International Conference on Embedded Wireless Systems and Networks. 137--148.Google ScholarGoogle Scholar
  9. Naveed Anwar Bhatti, Muhammad Hamad Alizai, Affan A. Syed, and Luca Mottola. 2016. Energy harvesting and wireless transfer in sensor network applications: Concepts and experiences. ACM Transactions on Sensor Networks (2016), 24.Google ScholarGoogle Scholar
  10. Naveed Anwar Bhatti and Luca Mottola. 2017. HarvOS: Efficient code instrumentation for transiently-powered embedded sensing. In Proceedings of the 16th ACM/IEEE International Conference on Information Processing in Sensor Networks. ACM, 209--219.Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Peter Boonstoppel, Cristian Cadar, and Dawson Engler. 2008. RWset: Attacking path explosion in constraint-based test generation. In Proceedings of the International Conference on Tools and Algorithms for the Construction and Analysis of Systems. Springer, 351--366.Google ScholarGoogle ScholarCross RefCross Ref
  12. Florian Brandner, Benoit Boissinot, Alain Darte, Benoît Dupont De Dinechin, and Fabrice Rastello. 2011. Computing Liveness Sets for SSA-Form Programs. Research Report RR-7503. INRIA. 25 pages. https://hal.inria.fr/inria-00558509Google ScholarGoogle Scholar
  13. Michael Buettner, Benjamin Greenstein, and David Wetherall. 2011. Dewdrop: An energy-aware runtime for computational RFID. In Proceedings of the 8th USENIX Conference on Networked Systems Design and Implementation. USENIX Association, 197--210.Google ScholarGoogle Scholar
  14. Hsung-Pin Chang, Yen-Ting Liu, and Shang-Sheng Yang. 2014. Surviving sensor node failures by MMU-less incremental checkpointing. Journal of Systems and Software 87 (2014), 74--86.Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Alexei Colin and Brandon Lucia. 2016. Chain: Tasks and channels for reliable intermittent programs. In Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications. ACM, 514--530.Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Canan Dagdeviren, Pauline Joe, Ozlem L. Tuzman, Kwi-Il Park, Keon Jae Lee, Yan Shi, Yonggang Huang, and John A. Rogers. 2016. Recent progress in flexible and stretchable piezoelectric devices for mechanical energy harvesting, sensing and actuation. Extreme Mechanics Letters (2016), 269--281.Google ScholarGoogle Scholar
  17. Kurt B. Ferreira, Rolf Riesen, Ron Brighwell, Patrick Bridges, and Dorian Arnold. 2011. libhashckpt: Hash-based incremental checkpointing using GPU’s. In Proceedings of the European MPI Users’ Group Meeting. Springer, 272--281.Google ScholarGoogle ScholarCross RefCross Ref
  18. M. Muztaba Fuad and Michael J. Oudshoorn. 2007. Transformation of existing programs into autonomic and self-healing entities. In Proceedings of the 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems. IEEE Computer Society, 133--144.Google ScholarGoogle Scholar
  19. Blaise Gassend, G. Edward Suh, Dwaine Clarke, Marten van Dijk, and Srinivas Devadas. 2003. Caches and hash trees for efficient memory integrity verification. In Proceedings of HPCA. IEEE Computer Society, 295--306.Google ScholarGoogle ScholarCross RefCross Ref
  20. Abstract Research Group. 2018. Benchmark Applications. www.github.com/CMUAbstract/releases#benchmark-applications ((accessed 2018-02-28)).Google ScholarGoogle Scholar
  21. Berkin Güler and Öznur Özkasap. 2018. Efficient checkpointing mechanisms for primary-backup replication on the cloud. Concurrency and Computation: Practice and Experience 30, 21 (2018), e4707.Google ScholarGoogle ScholarCross RefCross Ref
  22. Matthew R. Guthaus, Jeffrey S. Ringenberg, Dan Ernst, Todd M. Austin, Trevor Mudge, and Richard B. Brown. 2001. MiBench: A free, commercially representative embedded benchmark suite. In Proceedings of the WWC. IEEE, 3--14.Google ScholarGoogle Scholar
  23. Josiah Hester, Lanny Sitanayah, and Jacob Sorber. 2015. Tragedy of the coulombs: Federating energy storage for tiny, intermittently-powered sensors. In Proceedings of the 13th ACM Conference on Embedded Networked Sensor Systems. ACM, 5--16.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Josiah Hester and Jacob Sorber. 2017. Flicker: Rapid prototyping for the batteryless Internet-of-Things. In Proceedings of the 15th ACM Conference on Embedded Network Sensor Systems. ACM, Article 19, 13 pages.Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Matthew Hicks. 2017. Clank: Architectural support for intermittent computation. In Proceedings of the 44th Annual International Symposium on Computer Architecture. 228--240.Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Texas Instruments. 2013. MSP430 Solar Energy Harvesting Development Tool. http://www.ti.com/tool/EZ430-RF2500-SEH (accessed 2018-08-03).Google ScholarGoogle Scholar
  27. Oana Iova, Pietro Picco, Timofei Istomin, and Csaba Kiraly. 2016. RPL: The routing standard for the Internet of Things... Or is it? IEEE Communications Magazine (2016), 16--22.Google ScholarGoogle Scholar
  28. Hrishikesh Jayakumar, Arnab Raha, Woo Suk Lee, and Vijay Raghunathan. 2015. Quick recall: A HW/SW approach for computing across power cycles in transiently powered computers. ACM Journal on Emerging Technologies in Computing Systems (2015), 8.Google ScholarGoogle Scholar
  29. Richard Koo and Sam Toueg. 1987. Checkpointing and rollback-recovery for distributed systems. IEEE Transactions on Software Engineering (1987), 23--31.Google ScholarGoogle Scholar
  30. Phil Koopman. 2010. Better Embedded System Software. CMU Press.Google ScholarGoogle Scholar
  31. PERSIST Lab. 2018. RF Trace. https://github.com/PERSISTLab/BatterylessSim/tree/master/traces (accessed 2018-02-28).Google ScholarGoogle Scholar
  32. Eunji Lee, Seunghoon Yoo, Jee-Eun Jang, and Hyokyung Bahn. 2012. Shortcut-JFS: A write efficient journaling file system for phase change memory. In Proceedings of the 28th Symposium on Mass Storage Systems and Technologies. IEEE, 1--6.Google ScholarGoogle ScholarCross RefCross Ref
  33. Juchang Lee, Kihong Kim, and Sang Kyun Cha. 2001. Differential logging: A commutative and associative logging scheme for highly parallel main memory database. In Proceedings of the 17th International Conference on Data Engineering. IEEE, 173--182.Google ScholarGoogle Scholar
  34. Fuyang Li, Keni Qiu, Mengying Zhao, Jingtong Hu, Yongpan Liu, Yong Guan, and Chun Jason Xue. 2018. Checkpointing-aware loop tiling for energy harvesting powered nonvolatile processors. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 38, 1 (2018), 15--28.Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Libelium. 2017. Waspmote. http://www.libelium.com/products/waspmote/ (accessed 2017-10-02).Google ScholarGoogle Scholar
  36. Brandon Lucia, Vignesh Balaji, Alexei Colin, Kiwan Maeng, and Emily Ruppel. 2017. Intermittent computing: Challenges and opportunities. In Procedings of the 2nd Summit on Advances in Programming Languages. Leibniz International Proceedings in Informatics.Google ScholarGoogle Scholar
  37. Brandon Lucia and Benjamin Ransford. 2015. A simpler, safer programming and execution model for intermittent systems. In Proceedings of the 36th ACM SIGPLAN Conference on Programming Language Design and Implementation, 575--585.Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Giedrius Lukosevicius, Alberto Rodriguez Arreola, and Alexander Weddell. 2017. Using sleep states to maximize the active time of transient computing systems. In ENSsys (with SenSys). ACM.Google ScholarGoogle Scholar
  39. Kiwan Maeng, Alexei Colin, and Brandon Lucia. 2017. Alpaca: Intermittent execution without checkpoints. In Proceedings of the ACM on Programming Languages 1, Article 96 (2017), 30 pages.Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. R. Margolies, L. Pena, K. Kim, Y. Kim, M. Wang, M. Gorlatova, J. Sarik, J. Zhu, P. Kinget, I. Kymissis, and G. Zussman. 2013. An adaptive testbed of energy harvesting active networked tags (EnHANTs) prototypes. In Proceedings of the 2013 IEEE Conference on Computer Communications Workshops (INFOCOM WKSHPS). 31--32.Google ScholarGoogle Scholar
  41. mbed. 2017. IoT OS. goo.gl/u918jX.Google ScholarGoogle Scholar
  42. Kresimir Mihic, Ajay Mani, Manjunath Rajashekhar, and Philip Levis. 2007. Mstore: Enabling storage-centric sensornet research. In Proceedings of IPSN. Citeseer, 1--8.Google ScholarGoogle Scholar
  43. Satish Narayanasamy, Gilles Pokam, and Brad Calder. 2005. Bugnet: Continuously recording program execution for deterministic replay debugging. ACM SIGARCH Computer Architecture News, Vol. 33. IEEE Computer Society, 284--295.Google ScholarGoogle ScholarDigital LibraryDigital Library
  44. Robert H. B. Netzer and Mark H. Weaver. 1994. Optimal tracing and incremental reexecution for debugging long-running programs. In Proceedings of PLDI, Vol. 94. ACM, 313--325.Google ScholarGoogle Scholar
  45. Hoang Anh Nguyen, Anna Forster, Daniele Puccinelli, and Silvia Giordano. 2011. Sensor node lifetime: An experimental study. In Proceedings of the IEEE International Conference on Pervasive Computing and Communications Workshops (PERCOM Workshops). IEEE, 202--207.Google ScholarGoogle Scholar
  46. Expansion of STM32 Nucleo boards. 2017. Data Sheet: X-NUCLEO-NFC02A1. www.st.com (accessed 2017-10-02).Google ScholarGoogle Scholar
  47. Terence Parr. 2013. The Definitive ANTLR 4 Reference. goo.gl/RR1s.Google ScholarGoogle Scholar
  48. James S. Plank, Micah Beck, Gerry Kingsley, and Kai Li. 1995. Libckpt: Transparent checkpointing under UNIX. In USENIX 1995 Technical Conference Proceedings. USENIX Association.Google ScholarGoogle Scholar
  49. Xiongpai Qin, Yanqin Xiao, Wei Cao, and Shan Wang. 2008. A parallel recovery scheme for update intensive main memory database systems. In Proceedings of the 9th International Conference on Parallel and Distributed Computing, Applications and Technologies. IEEE, 509--516.Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Brian Randell, Pete Lee, and Philip C. Treleaven. 1978. Reliability issues in computing system design. ACM Computing Surveys (CSUR) 10, 2 (1978), 123--165.Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. Benjamin Ransford. 2011. Mementos: System support for long-running computation on RFID-scale devices. In Proceedings of the 16th International Conference on Architectural Support for Programming Languages and Operating Systems. Association for Computing Machinery, 159--170.Google ScholarGoogle ScholarDigital LibraryDigital Library
  52. B. Ransford. 2013. Transiently Powered Computers. Ph.D. Dissertation. School of Computer Science, UMass Amherst.Google ScholarGoogle Scholar
  53. Alanson P. Sample, Daniel J. Yeager, Pauline S. Powledge, Alexander V. Mamishev, and Joshua R. Smith. 2008. Design of an RFID-based battery-free programmable sensing platform. IEEE Transactions on Instrumentation and Measurement 57, 11 (2008), 2608--2615.Google ScholarGoogle ScholarCross RefCross Ref
  54. Bor-Yeh Shen, Jiunn-Yeu Chen, Wei-Chung Hsu, and Wuu Yang. 2012. LLBT: An LLVM-based static binary translator. In CASES. ACM, 51--60.Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. Rebecca Smith and Scott Rixner. 2015. Surviving peripheral failures in embedded systems. In Proceedings of the 2015 USENIX Annual Technical Conference. USENIX Association, 125--137.Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. IXYS SolarMD. 2018. SLMD481H08L. http://ixapps.ixys.com/ (accessed 2018-02-28).Google ScholarGoogle Scholar
  57. Fang Su, Kaisheng Ma, Xueqing Li, Tongda Wu, Yongpan Liu, and Vijaykrishnan Narayanan. 2017. Nonvolatile processors: Why is it trending? In Proceedings of the 2017 Design, Automation and Test in Europe Conference and Exhibition. IEEE, 966--971.Google ScholarGoogle ScholarCross RefCross Ref
  58. Yulei Sui and Jingling Xue. 2016. SVF: Interprocedural static value-flow analysis in LLVM. In Proceedings of the 25th International Conference on Compiler Construction. ACM, 265--266.Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Florin Sultan, Thu Nguyen, and Liviu Iftode. 2000. Scalable fault-tolerant distributed shared memory. In Proceedings of the 2000 ACM/IEEE Conference on Supercomputing. IEEE, 20--20.Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Joel Van Der Woude and Matthew Hicks. 2016. Intermittent computation without hardware support or programmer intervention. In Proceedings of OSDI. USENIX Association, 17--32.Google ScholarGoogle Scholar
  61. Ramakrishnan Venkitaraman and Gopal Gupta. 2004. Static program analysis of embedded executable assembly code. In Proceedings of CASES. ACM, 157--166.Google ScholarGoogle ScholarDigital LibraryDigital Library
  62. Mimi Xie, Mengying Zhao, Chen Pan, Jingtong Hu, Yongpan Liu, and Chun Jason Xue. 2015. Fixing the broken time machine: Consistency-aware checkpointing for energy harvesting powered non-volatile processor. In Proceedings of theDAC. 1--6.Google ScholarGoogle ScholarDigital LibraryDigital Library
  63. Guang Yang, Bernard H. Stark, Simon J. Hollis, and Steve G. Burrow. 2014. Challenges for energy harvesting systems under intermittent excitation. IEEE Journal on Emerging and Selected Topics in Circuits and Systems (2014).Google ScholarGoogle Scholar
  64. Jing Yang, Mary Lou Soffa, Leo Selavo, and Kamin Whitehouse. 2007. Clairvoyant: A comprehensive source-level debugger for wireless sensor networks. In Proceedings of the 5th International Conference on Embedded Networked Sensor Systems. ACM, 189--203.Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Fast and Energy-Efficient State Checkpointing for Intermittent Computing

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    HTML Format

    View this article in HTML Format .

    View HTML Format
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!