I’m an Adjunct Associate Professor in the UC Berkeley EECS Department. My affiliations are:
- The RAD Lab, where I work on applying statistical machine learning (SML) techniques to the challenges of developing, deploying and operating datacenter-scale Internet systems
- The Par Lab (one of the Universal Parallel Computing Research Centers), where I work on applying pragmatic programming language technology to bridge the gap between highly-productive and highly-efficient parallel programming.
I also teach undergraduate and graduate courses in these areas, I have an irrational interest in the history of computing and retrocomputing, I have ideas for various small projects that none of my students are currently working on, and a non-work life involving music, musical theater, Pogo our keel-billed toucan, and lots more.
Current research projects & papers
Although you can get a list of all my papers in PDF format, if you’re looking for recent stuff, it’s probably faster to look at the RAD Lab publications list, the Par Lab publications list, or the project-specific pages below. For earlier stuff (Stanford iRoom, Recovery-Oriented Computing, GloMop/Daedalus, NOW) see the under-construction annotated bibliographies of past projects.
- AWE: using machine learning to simultaneously predict multiple aspects of resource utilization of long-running workloads (e.g. database queries, MapReduce jobs). Joint work with HP Labs.
- SCADS: a new data/query model for horizontally-scalable interactive applications. We start with the fundamental constraints imposed by scalability and work our way backwards to a usable query model that forbids expressing too-expensive queries.
- Internet service modeling using machine learning to model the variations in response times of multi-tier Internet applications. Joint work with Microsoft Research Silicon Valley.
- Console log mining: combining text mining techniques with source code analysis to find markers for hard-to-find bugs in the console logs of complex applications.
- Cloud computing : investigating the scalability limits, bottlenecks, and developing best practices for development & deployment in Cloud Computing environments.
- SEJITS: Selective, embedded, just-in-time specialization bridges the gap between productivity programming and efficiency programming, taking advantage of the introspection and metaprogramming features of modern scripting languages.
- PySKI: bringing autotuning and high-performance libraries like OSKI to very high level productivity languages.