Context-Aware Platform Design and Optimization
The Internet of Things (IoT) envisions a web-connected infrastructure comprising billions of sensors and actuation devices that collect contextual data about the environment and respond accordingly. Machine and environmental context-aware computing opens up opportunities to learn new abstract information from sensed data, and is key for both standalone and interconnected applications to run efficiently. Since the volume of such data is growing exponentially, it is essential to develop automated techniques to derive useful data for design of scalable systems. We present a middleware framework along with analytical proofs that reduce the computing complexity of vast context collection and communication of abstract data among distributed nodes.
Effective and scalable distributed systems rely on accurate and flexible modeling of the devices and their interactions. In this dissertation, we study the use of context extraction across a hierarchy of devices, including resource-constrained embedded platforms as well as more powerful edge servers. We show that relevant context for optimizing performance and energy consumption, even for a single server executing database workloads, goes well beyond traditional variables like performance counters. In fact, we are the first to show that the speed of cooling fans can strongly affect the energy-delay product of a system. We leverage this additional contextual information as input to convex optimization that reduces the energy consumption of a server by 65% compared to basic PID controllers, or by 19% in comparison to advanced hardware management techniques proposed in literature. At an ecosystem level, we compare our distributed infrastructure to current monolithic implementations with single- point communications between sensor nodes and the cloud servers, demonstrating a reduction in combined system energy by 22-45%, and increasing the battery lifetime of power-constrained devices by at least 22x.