Affiliation:
1. Carnegie Mellon University, USA
Abstract
Energy harvesting computers enable general-purpose computing using energy collected from their environment. Energy-autonomy of such devices has great potential, but their intermittent power supply poses a challenge. Intermittent program execution compromises progress and leaves state inconsistent. This work describes Chain: a new model for programming intermittent devices.
A Chain program is a set of programmer-defined tasks that compute and exchange data through channels. Chain guarantees forward progress at task granularity. A task is restartable and never sees inconsistent state, because its input and output channels are separated. Our system supports language features for expressing advanced data exchange patterns and for encapsulating reusable functionality.
Chain fundamentally differs from state-of-the-art checkpointing approaches and does not incur the associated overhead. We implement Chain as C language extensions and a runtime library. We used Chain to implement four applications: machine learning, encryption, compression, and sensing. In experiments, Chain ensured consistency where prior approaches failed and improved throughput by 2-7x over the leading state-of-the-art system.
Funder
National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
122 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Stash: Flexible Energy Storage for Intermittent Sensors;ACM Transactions on Embedded Computing Systems;2024-01-19
2. ELIXIR: An Expedient Connection Paradigm for Self-Powered IoT Devices;IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems;2023-11
3. ESS: Repeatable Evaluation of Energy Harvesting Subsystems for Industry-Grade IoT Platforms;2023 IEEE International Symposium on Workload Characterization (IISWC);2023-10-01
4. Fine-grained Hardware Acceleration for Efficient Batteryless Intermittent Inference on the Edge;ACM Transactions on Embedded Computing Systems;2023-09-26
5. A Type System for Safe Intermittent Computing;Proceedings of the ACM on Programming Languages;2023-06-06