Summarily, my research interest is in:
Embedded devices are pivotal to Internet-of-Things (IoT) and cyber-physical systems (CPS) applications in smart cities, personal health tracking, automation, wearables, and more! The oft-remarked rapid growth and acceleration of the IoT underscores the promise of its applications yet also underlies the problem of its sustainability: all hardware must eventually be replaced. And, as the largest class of computing devices, the IoT's impact on the growth of e-waste and its implications for maintenance burdens are correspondingly great. Unfortunately, IoT devices with lifespans numbering in single-digit years have become common, further compounding their contribution to the problem.
Though some reasons to replace devices are inextricably rooted in the hardware itself (e.g., hardware failure or missing some essential sensor), many are yet addressable through software. This idea is central to my work: design novel software systems and systems software to help low-power IoT devices avoid common causes for premature obsolescence. For example, users want devices to support new functions, compute requirements of emerging software applications inevitably outpace hardware capabilities, and vendor support overwhelmingly dictates the useful lifetime of devices.
The systems that I, together with my colleagues, have built demonstrate that by making application architecture more flexible about when, where, and how computation happens we can free low-power systems from restrictions causing obsolescence. You can browse a selection of this research here.
Allows energy- or compute-constrained devices to offload real-time workloads to more capable, hyper-local devices to support more computationally intensive workloads. The fReeLoaders' deadline-driven reinforcement-learning-based scheduler obviates the need for intensive profiling, instead learning on-the-fly to meet the QoS needs of offloaders.
Introduces a scheduler specially designed to parallelize peripheral activity of an MCU. This controls energy usage in embedded systems running multiple applications concurrently and makes such configurations feasible for energy-constrained devices.
Maps the task application architecture to a collection of processes in an embedded operating system, yielding a system with the facilities of a structured OS and robustbustness to intermittent energy availability.