Chain: Tasks and Channels for Reliable Intermittent Programs

被引:170
作者
Colin, Alexei [1 ]
Lucia, Brandon [1 ]
机构
[1] Carnegie Mellon Univ, Pittsburgh, PA 15213 USA
关键词
intermittent computing; energy-harvesting;
D O I
10.1145/3022671.2983995
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 check-pointing 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.
引用
收藏
页码:514 / 530
页数:17
相关论文
共 41 条
[1]  
Agha Gul, 1986, Actors: A Model of Concurrent Computation in Distributed Systems"
[2]  
[Anonymous], P INT S COD GEN OPT
[3]  
[Anonymous], C TANG EMB EMB INT T
[4]  
[Anonymous], 2011, FAST
[5]  
[Anonymous], SOILD STAT CIRC C DI
[6]  
[Anonymous], ASPLOS
[7]  
[Anonymous], ASPLOS
[8]  
[Anonymous], P 33 INT C PROGR LAN
[9]  
[Anonymous], 2011, ASPLOS
[10]  
[Anonymous], PROTEUS DIGITAL HLTH