We propose a method for optimizing the energy efficiency of software code running on small computing devices in the Internet of Things (IoT) that are powered exclusively by electricity harvested from ambient energy in the environment. Due to the weak and unstable nature of the energy source, it is challenging for developers to manually optimize the software code to deal with mismatch between the intermittent power supply and the computation demand. Our method overcomes the challenge by using a combination of three techniques. First, we use static program analysis to automatically identify opportunities for \emph{precomputation}, i.e., computation that may be performed ahead of time as opposed to just in time. Second, we compute a precomputation policy, i.e., a way to split and reorder steps of a computation task in the original software to match the intermittent power supply while satisfying a variety of system requirements; this is accomplished by formulating energy optimization as a constraint satisfiability problem and then solving the problem using an off-the-shelf SMT solver. Third, we use a state-of-the-art compiler platform (LLVM) to automate the program transformation to ensure that the optimized software code is correct by construction. We have evaluated our method on a large number of benchmark programs, which are C programs implementing lightweight secure communication protocols that are popular for energy-harvesting IoT devices. Our experimental results show that the method is efficient in optimizing all benchmark programs. Furthermore, the optimized programs significantly outperform the original programs in terms of both energy efficiency and latency, and the improvements range from 2X to 29X.

Fri 21 Jul

Displayed time zone: Pacific Time (US & Canada) change

10:30 - 12:00
ECOOP 7: Verification and TestingResearch Papers at Amazon Auditorium (Gates G20)
Chair(s): Wenxi Wang University of Texas at Austin
10:30
15m
Talk
On using VeriFast, VerCors, Plural, and KeY to check object usage
Research Papers
João Mota NOVA School of Science and Technology, António Ravara NOVA LINCS & FCT, NOVA University of Lisbon, Marco Giunti NOVA-LINCS, FCT NOVA / Universidade Nova de Lisboa
DOI
10:45
15m
Talk
Exact Separation Logic
Research Papers
Petar Maksimović Imperial College London, UK, Caroline Cronjäger Ruhr-Universität Bochum, Andreas Lööw Imperial College London, Julian Sutherland Imperial College London, Philippa Gardner Imperial College London
DOI Pre-print
11:00
15m
Talk
Morpheus: Automated Safety Verification of Data-dependent Parser Combinator Programs
Research Papers
Ashish Mishra Purdue University, Suresh Jagannathan Purdue University
DOI
11:15
15m
Talk
Constraint Based Compiler Optimization for Energy Harvesting Applications
Research Papers
Yannan Li University of Southern California, Chao Wang University of Southern California
DOI
11:30
15m
Talk
Dynamic Determinacy Race Detection for Task-Parallel Programs with Promises
Research Papers
Feiyang Jin Georgia Institute of Technology, Lechen Yu Georgia Institute of Technology, Tiago Cogumbreiro University of Massachusetts Boston, Vivek Sarkar Georgia Institute of Technology, Jun Shirako Georgia Institute of Technology
DOI
11:45
15m
Talk
On Leveraging Tests to Infer Nullable Annotations
Research Papers
Jens Dietrich Victoria University of Wellington, David J. Pearce ConsenSys, Mahin Chandramohan Oracle Labs
DOI