Abstract | ||
---|---|---|
Emerging energy-harvesting computer systems extract energy from their environment to compute, sense, and communicate with no battery or tethered power supply. Building software for energy-harvesting devices is a challenge, because they operate only intermittently as energy is available. Programs frequently reboot due to power loss, which can corrupt program state and prevent forward progress. Task-based programming models allow intermittent execution of long-running applications, but require the programmer to decompose code into tasks that will eventually complete between two power failures. Task decomposition is challenging and no tools exist to aid in task decomposition.We propose CleanCut, a tool that can check for and report non-terminating tasks in existing code, as well as automatically decompose code into efficient, terminating tasks. CleanCut is based on a statistical model for energy of paths through the program. We applied a prototype of CleanCut to four applications, including pattern-recognition, encryption, compression, and data filtering. Our experiments demonstrated the risk of non-termination in existing code and showed that CleanCut finds efficient task decompositions that execute 2.45x faster on average than manually placed boundaries. |
Year | DOI | Venue |
---|---|---|
2018 | 10.1145/3178372.3179525 | CC'18: PROCEEDINGS OF THE 27TH INTERNATIONAL CONFERENCE ON COMPILER CONSTRUCTION |
Keywords | Field | DocType |
intermittent computing, energy estimation | Reboot,Programmer,Programming language,Programming paradigm,Computer science,Power loss,Encryption,Software,Normalization property,Statistical model,Distributed computing | Conference |
Citations | PageRank | References |
13 | 0.49 | 33 |
Authors | ||
2 |
Name | Order | Citations | PageRank |
---|---|---|---|
Alexei Colin | 1 | 63 | 2.50 |
Brandon Lucia | 2 | 690 | 32.24 |