Systems & Networking
Overview
We conduct research on a variety of topics, including operating systems, distributed systems, security, data provenance, program analysis, and much more!
Interpretable Machine Learning
We use computational caching as well as novel data structures and algorithms to produce provably optimal solutions to real world NP-hard problems. Our focus is on interpretable, certifiably optimal models.
Networked and Distributed Systems
We investigate new design principles in datacenter system design and operation. Our work covers broad areas such as Network Function chain allocation and acceleration, disaggregated datacenters, and using programmable devices to acclerate data analytics workloads.
Privacy
Systems that handle users' data must consider the privacy of that data. We build systems that provide privacy guarantees in the face of various types of threats and also study individual privacy expectations using mixed methods approaches.
Provenance
We investigate techniques and applications that make data more valuable, from capturing data provenance (a formal history of how data came to be in its present form) to deriving provenance to developing applications that use data provenance. We build tools to facilitate scientific reproducibility and we investigate ways to build systems that are more accountable to the people who develop and use them.
Security
We research, develop, evaluate, and deploy tools and systems designed to ensure that system/network security missions can be accomplished successfully despite cyber attacks. We also develop advanced algorithms and techniques for processing big datasets from a range of sources, such as IoT devices and network traffic.
Self-optimizing Systems
We investigate the use of Machine Learning techniques to design systems able to self-optimize.
Software Engineering for Systems
Complex software systems are difficult to design, implement, tune, debug, and understand. We are working on techniques to address these challenges.
Storage
We investigate emerging storage technology such as non-volatile RAM and ultra-dense hard disk drives to match technology characteristics with file system capabilities. We also explore new approaches to namespace management, data organization, and data analytics.
Synthesizing System Software
We investigate novel techniques for specifying systems components and tractably synthesizing provably correct implementations.
Graph-structured Data
We develop systems, machine learning models, and algorithms for different tasks on large scale graphs and explore novel applications for graph-structured data.
Operating Systems
We improve security and performance of both new and existing operating systems.