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!
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.
The following have helped fund my research efforts: