Programming and System Support for Reliable Intermittent Computing
Emerging energy-harvesting devices (EHDs) are computer systems that operate using energy extracted from their environment, even from low-power sources like ambient radio-frequency energy. Future EHDs will be a key enabler of emerging implantable medical devices, IoT applications, and nano-satellites, but today's EHDs operate intermittently, only as environmental energy is available. Unfortunately, intermittence makes today's EHDs unreliable and extremely difficult to program and debug. In this talk I will summarize the main challenges of intermittent execution. I will then discuss our recent efforts developing system, programming language, and toolchain support for EHDs to address the challenges of intermittence, focusing especially on programmability, debugging, and reliability. I will close by discussing our recent work on building a reliable, EHD-based, hardware/software application platform for an upcoming deployment..