We develop techniques and abstractions for building efficient and trustworthy computer systems. Our current work focuses on making performance and energy programmable, i.e., providing first-class abstractions to capture a system’s performance and energy behavior (as interfaces do for functionality) and to use them dependably to design, code, and operate efficient systems.

In this context, we

  • explore the fundamental challenges posed by scale (many threads, many nodes, and millions of lines of code);
  • overcome theoretical limitations to solve real-world problems;
  • build open-source prototypes to evaluate our solutions with real-world workloads; and
  • bridge operating systems, architecture, distributed systems, languages, and formal methods.

Are you interested in working with us? Take a look at the opportunities.