Lucia receives NSF grant for programming and reliability support for energy-harvesting computers


September 9, 2015

Assistant ECE Professor Brandon Lucia received an NSF grant for programming and reliability support for energy-harvesting computers. His research lies on the boundary between computer architecture, computer systems and programming languages. He focuses on improving programmability, reliability and efficiency of computing devices and works from the microarchitecture to the application of the system.


Emerging energy-harvesting computing devices (EHDs) run on energy extracted from their environment and are poised to be the key enabler of next-generation wearables, implantable medical devices, and the Internet of Things (IoT) applications. However, software on an EHD can only execute intermittently, as energy is available. When power fails (10 to 100 times per second) the EHD turns off and reboots, requiring software on EHDs to span multiple periods of execution interrupted by power failures. Unfortunately, today's software development tools and practices do not address intermittence, and frequent interruptions cause unexpected and incorrect system behavior. Intermittence is a barrier to the widespread adoption of EHDs for many high-value applications and limits EHDs to use by experts only.

This proposal addresses the fundamental challenges of intermittence by introducing the Persistent- Channel-Based (PCB) programming and execution model. PCB provides a new, simpler way to write software that is robust to intermittence. PCB also describes a new way to execute that software with high reliability, despite intermittence. By simplifying the process of writing software for EHDs and making intermittent execution reliable, PCB makes EHDs accessible to all potential system builders and developers.

Just as the maturation of programming and execution models for embedded computer systems spawned industries around new embedded applications (e.g., the quantified-self project and in-home sensing), the development of the ideas in this project propels the same transformation for EHDs. PCB will enable researchers, individuals, and commercial players to create novel EHD-based applications that in the past could only be tediously purpose-built by expert researchers. The impact of this work is expected to transcend the technical outcomes of the research.

The primary technical outcomes in PCB are novel approaches to writing and executing software. Programs are composed of tasks using a novel task-graph control-flow model that eliminates control-flow discontinuities due to intermittence. PCB's novel channel-based memory model together with channel access control, ensures that memory remains consistent. PCB simplifies a program?s reasoning progress because it persistently tracks the execution through the task graph and channel access control prevents a task from modifying its inputs, ensuring correctness as the task repeatedly executes to completion. PCB cuts across layers of the system stack, with language, compiler, runtime, and architecture support using a language that enables programmers to use simple expressions. The compiler maps programs to operations in PCB's runtime system which in turn implements tasks and channels, providing the guarantees relied on by the PCB language. Hardware and architecture support for channels and tasks, provides similar guarantees with novel hardware support, eliminating the overhead of the software runtime system. Encouraging preliminary findings support the idea that PCB's tasks and channels makes reasoning about intermittent computation simpler and that PCB eliminates correctness issues in several actual EHD applications.

Learn more about Lucia’s grant here

Related People:

Brandon Lucia