My areas of interests include Systems and Networking, Embedded Systems and Mobile Computing. In several cases, my
projects lie at the intersection of software and hardware, since I believe that by leveraging the underlying
hardware better or even augmenting it, we can build much more scalable and efficient systems. My research spans three
general themes although a common goal among many of my projects is improving energy efficiency. The first theme is
on "Smart Buildings", where we look to improve the energy efficiency of buildings within the larger context of a
smart micro-grid. The second theme relates to building more "Energy Efficient and Resilient Computing Systems" that can
not only tolerate, but also detect and leverage the increasing variability in hardware components. The third theme
is "Mobile Computing", focusing on various energy management and privacy challenges surrounding modern smartphone
operating systems such as Android and iOS and their app ecosystems.
Smart Buildings and Smart Grid
Buildings consume a significant amount of energy, and the exact breakdown depends on a myriad of factors including
usage modalities, age, weather, occupants to name a few. The first step to managing their energy usage is understanding
where the energy is being consumed, so that it can be managed effecitively. My group and I have worked on making
buildings more energy efficient at a campus scale by devising novel sensing methods to detect occupants and their
movements and using that information to actually control or actuate building subsystems. We have architected and deployed
systems to manage IT (e.g. desktops and laptops) energy usage, called Somniloquy and SleepServer. We have also devised
wireless, battery powered, occupancy sensors and our own smart energy meter. Using the occupancy information we have
actuated the HVAC system of our building as well as managed plug-loads. We are also working on designing and
implementing BuildingDepot, a scalable and extensible open-source software system to manage all data related to
buildings supported by a library of "connectors" and "apps". There are many exciting avenues of research in the
smart-bulding space, including novel sensing systems, at scale networking, data analysis, modeling and actuation.
Futhermore, since buildings essentially house human occupants understanding their behavior and motivations, as well as
devising the right incentive mechanisms to engage them are important research problems.
Energy Efficient and Resilient Computer Systems
As computing devices become more complex, the underlying components within them continue to shrink. One side effect of this
continued scaling is that these devices cease to function as the precise machines of the past, and are becoming rather
unpredictable with varying degrees of hardware "variability". While hardware designers cope with this by instituing more
guard bands in their designs, thereby hiding it from the software, it often comes at the cost of reduced performance
and energy in-efficiency. As part of the NSF Variability Expeditions, we have been investigating techniques to make the
software stack not only more resilient, but also adaptive so that it can leverage these underlying differences between
devices. We began by detailed characterization of power variability across multiple classes of processors, and the
impact it has on power modeling. We are now investigating the right abstractions for exposing this variability to
systems software and methods by which it can be leveraged to build more reliable and/or energy efficient systems.
Since one manifestation of hardware variability is reduced reliability, we are looking at making programs more
resilient by decomposing them into parts that can handle errors (run under relaxed hardware guarantees) and
sections that cannot handle any errors (run under strict hardware guarantees). While a fuild hardware-software
interface can not only mitigate but also leverage variability for increased robustness and energy efficiency, many
research challenges remain!
Mobile Computing
The phenomenal improvement in the capabilities of modern smartphones, and the underlying `App' store model of software
distribution, has fundamentally changed the mobile computing landscape. For many people, smartphones are the platform
of choice for their computing needs. These trends have led to several interesting research problems that need to be
addressed. Two of the major ones that I have looked at are energy management (or improve battery lifetime) and mobile
privacy. To improve the battery lifetime of these devices, we have looked at optimizing communication energy consumption
since it is one of the dominant components given the many radios these devices have (Bluetooth, WiFi, NFC, GPS, Celluar).
I have built several systems - CoolSpots, SwitchR, Cell2Notify - to leverage the heterogeneous, and often complementary,
characteristics of different radios on the same device to improve overall battery lifetime. Recently, our focus has been
more towards 3rd party Apps running on modern smartphone OSes which can cause un-necessary battery drain due to developer
error. We have built a tool that verifies Android apps for the absence of energy sapping bugs. The other aspect of mobile
computing that I am very interested in is privacy, specically for smartphone applications that collect and
often sell user data such as location, contacts, various identiers and other private data unknown to users. Our ongoing
project - ProtectMyPrivacy - explores the extent of these privacy leaks, and provides users the ability to manage access to
their private data. To help users make informed privacy choices we have implemented a crowdsourced recommendation engine.
There are multiple research avenues that PmP has opened up, for example understanding user perception and bias towards
privacy on smartphones, effectiveness of crowdsourcing, improving effectiveness of privacy prompts, and also understanding
the motivations behind privacy breaching apps.
Sponsors
The following have helped fund my research efforts: