Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applicatio 2016
DOI: 10.1145/2983990.2983995
|View full text |Cite
|
Sign up to set email alerts
|

Chain: tasks and channels for reliable intermittent programs

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 … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
197
0

Year Published

2019
2019
2023
2023

Publication Types

Select...
4
3
1

Relationship

0
8

Authors

Journals

citations
Cited by 159 publications
(197 citation statements)
references
References 33 publications
0
197
0
Order By: Relevance
“…We survey these works in this section. [105] Task-based checkpointing-versioning, × × manual idempotency analysis Ratchet [106] Task-based checkpointing, × × automatic idempotency analysis Chain [107] Idempotency task programming, × channel-based data exchange HarvOS [108] CFG-based checkpoint placement, × × × advanced ADC interrupt Clank [109] Dynamic idempotency task decomposition, × checkpointing and versioning Alpaca [110] Idempotency task programming, × privatization data exchange Mayfly [111] Idempotency task programming, remanence timekeeping A. Checkpointing Optimizations 1) Checkpoint placement and activation: refers to the scheme of inserting potential checkpoints to the program at compile-time and activate checkpointing processes at run-time. Inserting checkpoints at different locations of the program leads to distinct checkpointing overhead (including energy and memory) as the number of variables to be saved varies.…”
Section: Computing Optimizations For Batterylessmentioning
confidence: 99%
See 1 more Smart Citation
“…We survey these works in this section. [105] Task-based checkpointing-versioning, × × manual idempotency analysis Ratchet [106] Task-based checkpointing, × × automatic idempotency analysis Chain [107] Idempotency task programming, × channel-based data exchange HarvOS [108] CFG-based checkpoint placement, × × × advanced ADC interrupt Clank [109] Dynamic idempotency task decomposition, × checkpointing and versioning Alpaca [110] Idempotency task programming, × privatization data exchange Mayfly [111] Idempotency task programming, remanence timekeeping A. Checkpointing Optimizations 1) Checkpoint placement and activation: refers to the scheme of inserting potential checkpoints to the program at compile-time and activate checkpointing processes at run-time. Inserting checkpoints at different locations of the program leads to distinct checkpointing overhead (including energy and memory) as the number of variables to be saved varies.…”
Section: Computing Optimizations For Batterylessmentioning
confidence: 99%
“…Second, the execution just follows a task flow and no checkpointing is needed between tasks, such as Chain [107] and Alpaca [110]. Instead of decomposing a long program that is written line-by-line (or instruction-by-instruction), Chain and Alpaca designed a new programming model where a program is written at the granularity of a task, i.e., groups of instructions, and these tasks are connected through a control flow graph.…”
Section: Computing Optimizations For Batterylessmentioning
confidence: 99%
“…However, this results in the full availability of the device only when power interruption is unlikely, which can incur relatively long sleeping periods due to the inevitable power outages in many energy harvesting-powered systems. Chain [10] is another model for programming intermittent devices, in which forward-progress is ensured at the task granularity level. It utilizes idempotent processing concepts to make tasks restartable that never experience inconsistency to keep NVM consistent.…”
Section: B Advancements Beyond Previous Workmentioning
confidence: 99%
“…The fundamental difference between a machine learning task and a typical task on a batteryless system (e.g., sensing and executing an offline-trained classifier) lies in the data and application semantics, which requires special treatment for effective learning under an extreme energy budget. Existing works on intermittent computing address important problems, such as ensuring atomicity [14,57], consistency [14,56,57], programmability [35], timeliness [35], and energy-efficiency [7,16,33], which enable efficient code execution of general-purpose tasks. Our work complements existing literature and specializes in a batteryless system on efficient and effective on-device learning by explicitly considering the utility of sensor data and the execution order of different modules of a machine learning task.…”
Section: Introductionmentioning
confidence: 99%
“…We provide a programming model that allows a programmer to develop an intermittent learning application that executes correctly on an intermittent system. Like many existing proposals, we adopt a task-based -which we call action-based -intermittent programming model [14,15,35,56,57,87]. We provide application programmers with an energy pre-inspection tool that helps them split an existing application code into sub-modules called actions that atomically run to completion on intermittently-powered systems.…”
Section: Introductionmentioning
confidence: 99%