Andrew Quinn

I'm a Fourth year ph.d candidate working with Jason Flinn at the University of Michigan. I'm supported by a Microsoft Research Fellowship and a National Science Foundation Fellowship .

I build cluster-scale systems that enable developers to interactively execute complex queries over their program executions for tasks like debugging and security forensics.


Sledgehammer: Cluster-Fueled Debugging
Andrew Quinn, Jason Flinn, and Mike Cafarella
Proceedings of the 2018 USENIX Symposium on Operating Systems Design and Implementation (OSDI), October 2018. [PDF][Slides]

JetStream: Cluster-scale Parallelization of Information Flow Queries
Andrew Quinn, David Devecsery, Peter M Chen and Jason Flinn
Proceedings of the 2016 USENIX Symposium on Operating Systems Design and Implementation (OSDI), November 2016. [PDF][Slides]


Sledgehammer: Cluster-fueled debugging
Sledgehammer was accepted to OSDI '18! Our observation is that today's debugging tools are either interactive (e.g. gdb) or powerful (e.g. detailed logging, invariant checkers). To break this dichotomy, we introduce cluster-fueled debugging which provides power and interactivity by parallelizing debugging queries across thousands of cores in a compute cluster. Realizing cluster-fueled debugging requires introducing scalability as a design constraint, which we follow to build Sledgehammer, the world's first cluster-fueled debugger. Sledgehammer uses cluster-fueled debugging to enable three debugging tools: retro-logging, continuous function evaluation, and retro-timing. Our results show that Sledgehammer scales to 1024 cores and accelerates queries by a factor of 416 on average. Check out our paper here if you want to learn more!

JetStream: Cluster-scale parallelization of information flow queries
My first research project, JetStream, was published at OSDI '16. JetStream applies cluster computing to parallelize dynamic information flow tracking (DIFT), a tool that helps developers understand causality in software. Prior research has called DIFT ''embarasingly sequential'', so cluster-scale parallelization requires rethinking the approach used to realize DIFT. JetStream leverages two different types of parallelism and shows that a little bit of sequential information can massively improve scalability. JetStream scales to at least 128 cores and attains an order of magnitude speedup over sequential DIFT. In most cases, JetStream is able to calculate the information flow of a program execution faster than program's original execution. Check out the paper here.