TY - GEN
T1 - Adaptive dynamic checkpointing for safe efficient intermittent computing
AU - Maeng, Kiwan
AU - Lucia, Brandon
N1 - Funding Information:
Thanks to the anonymous reviewers for the insightful feedback and to Alexei Colin, Emily Ruppel, and Ad-wait Dongare for the valuable discussion and feedback about the work. We are also grateful to Cristiano Giuf-frida for shepherding our final draft. This work is based on work supported by National Science Foundation grant CSR-1526342 and CAREER Award CCF-1751029. Ki-wan Maeng was supported by a scholarship from the Korea Foundation for Advanced Studies.
Publisher Copyright:
© Proceedings of NSDI 2010: 7th USENIX Symposium on Networked Systems Design and Implementation. All rights reserved.
PY - 2007
Y1 - 2007
N2 - Energy-harvesting devices have the potential to be the foundation of emerging, sensor-rich application domains where the use of batteries is infeasible, such as in space and civil infrastructure. Programming on an energy-harvesting device is difficult because the device operates only intermittently, as energy is available. Intermittent operation requires the programmer to reason about energy to understand data consistency and forward progress of their program. Energy varies with input and environment, making intermittent programming difficult. Existing systems for intermittent execution provide an unfamiliar programming abstraction and fail to adapt to energy changes forcing a compromise of either performance or assurance of forward progress. This paper presents Chinchilla, a compiler and runtime system that allows running unmodified C code efficiently on an energy-harvesting device with little additional programmer effort and no additional hardware support. Chinchilla overprovisions code with checkpoints to assure the system makes progress, even with scarce energy. Chinchilla disables checkpoints dynamically to efficiently adapt to energy conditions. Experiments show that Chinchilla improves programmability, is performant, and makes it simple to statically check the absence of non-termination. Comparing to two systems from prior work, Alpaca and Ratchet, Chinchilla makes progress when Alpaca cannot, and has 125% mean speedup against Ratchet.
AB - Energy-harvesting devices have the potential to be the foundation of emerging, sensor-rich application domains where the use of batteries is infeasible, such as in space and civil infrastructure. Programming on an energy-harvesting device is difficult because the device operates only intermittently, as energy is available. Intermittent operation requires the programmer to reason about energy to understand data consistency and forward progress of their program. Energy varies with input and environment, making intermittent programming difficult. Existing systems for intermittent execution provide an unfamiliar programming abstraction and fail to adapt to energy changes forcing a compromise of either performance or assurance of forward progress. This paper presents Chinchilla, a compiler and runtime system that allows running unmodified C code efficiently on an energy-harvesting device with little additional programmer effort and no additional hardware support. Chinchilla overprovisions code with checkpoints to assure the system makes progress, even with scarce energy. Chinchilla disables checkpoints dynamically to efficiently adapt to energy conditions. Experiments show that Chinchilla improves programmability, is performant, and makes it simple to statically check the absence of non-termination. Comparing to two systems from prior work, Alpaca and Ratchet, Chinchilla makes progress when Alpaca cannot, and has 125% mean speedup against Ratchet.
UR - http://www.scopus.com/inward/record.url?scp=85076715580&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85076715580&partnerID=8YFLogxK
M3 - Conference contribution
AN - SCOPUS:85076715580
T3 - Proceedings of the 13th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2018
SP - 129
EP - 144
BT - Proceedings of the 13th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2018
PB - USENIX Association
T2 - 13th USENIX Symposium on Operating Systems Design and Implementation, OSDI 2018
Y2 - 8 October 2018 through 10 October 2018
ER -