Modern energy harvesting and wireless energy transfer techniques allow embedded devices to mitigate, if not to eliminate, their dependency on traditional batteries. However, this form of energy provisioning is generally highly variable and unpredictable across space and time.
This trait clashes with the increasing push to realize tiny embedded sensing devices enabling unobtrusive and pervasive deployments. Energy storage facilities used to ameliorate fluctuations in energy supplies need to be miniaturized as well, as they often represent a dominating factor in size. Unexpected system shutdowns due to energy depletion are thus difficult to avoid, and cause applications to lose their state. When energy is newly available and devices reboot, applications need to re-acquire and re-synchronize state, which typically represents a waste of resources.
In such a setting, systems need to be developed with the ability to cross periods of energy unavailability in the most energy-efficient way. The computing pattern then becomes intermittent: periods of normal computation and periods of energy harvesting come to be unpredictably interleaved. Such a feature becomes the distinctive trait of a novel, emerging computing pattern, commonly termed transiently-powered embedded computing.
Several research efforts are currently underway to address the many new challenges brought by transiently-powered embedded computing. Existing contributions are, however, scattered across diverse research communities that have hitherto experienced little cross-fertilization, including programming languages, embedded real-time systems, sensor networks, low-power hardware, and microelectronics.
Nonetheless, the interest of the research community in transiently-powered computing is quickly growing. In addition to an increasing number of research papers appearing at venues such as ACM/IEEE IPSN, ACM SENSYS, ACM ASPLOS, and ACM SPLASH, some of this tutorial's speakers successfully organized a Ph.D. school on transiently-powered computing co-located with ACM SENSYS 2017.
The tutorial aims at providing a systematic, yet succinct overview of existing efforts in the field of transiently-powered computing.
To this end, the tutorial will cover topics such as:
1) paradigmatic transiently-powered applications and related functional requirements
2) energy harvesting and wireless energy transfer techniques
3) programming abstractions for intermittent computations
4) operating system support for transiently-powered computing
5) testing and experimentation of transiently-powered systems
6) available transiently-powered hardware platforms
The material will cover both theoretical aspects and their real-world application. To foster the active participation of attendees, the half-day tutorial will include a mixture of traditional lectures, demos presented by the speakers, and collective discussions. Attendees will be provided beforehand with material including lecture slides and key research papers. We will also setup an online forum so discussions can proceed also after the end of the tutorial and attendees can stay in touch with each other and the speakers.
The tutorial is aimed at fresh students looking for interesting problems, researchers willing to gain deeper insights into transiently-powered computing, and practitioners in search of a systematic overview on the topic. At the end of the tutorial, attendees will be acquainted with the challenges in implementing software functionality in an intermittent computing setting, be knowledgeable about the state of the art in the field, and be informed on how to apply the learned concepts to concrete cases.
In a broader perspective, the tutorial may represent a step towards creating increased awareness within the CPS community about the challenges in this specific field, hopefully providing ``food for thoughts'' to inspire future research.