Tobias Grosser

Tobias Grosser

Tobias Grosser

Associate Professor

University of Cambridge


My interests are compilation, programming language design, and effective performance programming. However, I define these areas broadly. As a result, I ask questions such as:

  • How can compilers contribute to understanding climate change?
  • Can machine learning help us to automate compiler design and performance programming?
  • Can compilers revolutionize how hardware (ASICs, CPUs, ...) is designed?
  • Can formal verification increase confidence in self-driving cars?
  • How can performance programming become a smooth and interactive experience for developers?

Before joining Cambridge, I was a Reader at the University of Edinburgh, an Ambizione Fellow at ETH Zurich, and a Google PhD Fellow at École Normale Supérieure Paris. I studied computer science as an undergraduate at the University of Passau in Germany.

Research


Effective Performance Programming by Re-Connecting Developers and Compilers

My research uses strong theoretical reasoning to bring innovations to real-world compilation and programming language problems. My current objective is to rethink performance programming by re-connecting developers and compilers. Today, performance programming is no longer limited to the optimization of low-level code but often includes the use of domain-specific compilers, constraint programming libraries, complex performance models, and automatic (potentially learned) strategies to search for optimal code transformations.

My primary objectives are:
  • making compilation more modular, predictable, automatic, and trustworthy
  • bringing open-source compiler innovation to an increasingly broad set of targets from GPUs over FPGAs to custom hardware, and
  • breaking down the barriers between compilers and programmers by enabling their interaction via the programming language environment.

I dream of a future where performance programming is an intuitive play between the programmer and the compiler. A game that smoothly moves between manual as well as automatic techniques and works across software and hardware.



I am particularly interested in the following areas:
  • Compilers
  • Static & dynamic analysis
    • Abstract interpretation based program analysis
    • Performance and cache models
    • Test case generation
  • Human-compiler interface
  • Domain-specific compilation
    • Deep learning
    • Climate science
  • High-performance computing
    • Loop optimization & polyhedral compilation
    • Vectorization
  • Compilation for accelerators: GPU, FPGA
  • Open-source hardware
    • Compiler support for RISC-V
    • Software/hardware co-design
  • SMT and constraint solving
    • Mixed integer linear programming
    • SAT solving
    • Parametric counting using Barvinok’s algorithm
  • Automatic theorem proving for compiler verification and constraint solving
  • Effective compilation from functional languages to imperative code
  • Artificial intelligence for compilers and constraint solvers

Team


Alex
Alex Keizer
PhD
Arjun
Arjun Pitchanathan
PhD
Bea
Bea Healy
PhD
Mathieu
Mathieu Fehr
PhD
Sasha
Sasha Lopoukhine
PhD
Siddharth
Siddharth Bhat
PhD
Emilien
Emilien Bauer
Researcher
Luisa
Luisa Cicolini
Research Assistant
Anton
Anton Lydike
Researcher
Chris
Chris Vasiladiotis
Postdoctoral Researcher
Kunwar
Kunwar Grover
Collaborator
Michel
Michel Weber
Collaborator


Previous Members

  • Dalia Shaaban, Intern

    2023 - 2024
    Moved toETH Zurich (continuing)

  • Tom Soucies, Intern

    2023
    Moved toENS Rennes (continuing)

  • Abhinav Menon, Intern

    2023
    Moved toIIIT Hyderabad (continuing)

  • Jatin Agarwala, Intern

    2023
    Moved toIIIT Hyderabad (continuing)

  • Chris Hughes, Researcher


    Moved to

  • Theo Degioanni, Intern (M.Sc.)

    2022 and 2024
    Moved toNVIDIA
    Machine Learning Compiler Engineer

  • Andres Goens, Postdoctoral Researcher

    2021 - 2023
    Moved toUniversity of Amsterdam
    Assistant Professor

  • Yifan Xu, Intern

    2021
    Moved toUniversity of Edinburgh
    BSc Student (continuing)

  • David Bourke, MSc

    2021
    Moved toVyatta NOS group
    Performance Engineer

  • Christian Ulmann, MSc Thesis & BSc Thesis

    2020 - 2022
    Moved toNextSilicon
    Software Engineer

  • Anurudh Peduri, Intern

    2020 - 2022
    Moved toRuhr-Universität Bochum
    PhD with Michael Walter

  • Christoph Mueller, Researcher

    2020
    Moved toMeteoSwiss
    Scientific Software Developer

  • Jakub Lichman, M.Sc. Thesis

    2020
    Moved toGoogle
    Internship with Albert Cohen and Oleksandr Zinenko

  • Theodoros Theodoridis, Researcher

    2019 - 2020
    Moved toETH Zurich
    Ph.D. student with Zhendong Su

  • Arjun Pitchanathan, Intern (M.Sc.)

    2019 - 2020
    Moved toUniversity of Edinburgh
    Ph.D. with me

  • Jean-Michel Gorius, Intern (M.Sc.)

    2019
    Moved toUniversity of Murcia
    Internship with Alexandra Jimborean

  • Mathieu Fehr, Intern (M.Sc.)

    2019
    Moved toMIT CSAIL
    Internship with Adam Chlipala

  • Lorenzo Chelini, PhD

    2018 - 2020
    Moved toIntel Zurich
    Postdoctoral Researcher

  • Anastiasiia Ruzhanskaia, Intern (M.Sc.)

    2018
    Moved toETH Zurich
    Ph.D. student with Timothy Roscoe

  • Tobias Gysi, PhD Student & Postdoctoral Researcher

    2014 - 2020
    Moved toGoogle Zurich
    Research Engineer

Projects




Publications

2024

2021

2020


↓   Show All   ↓ ↦ Google Scholar

Join Us!

Are you considering a PhD? I enjoy working with students! Seeing you develop your research vision brings me meaning and joy.

I would be excited to guide you through your scientific adventures. I often have flexible funding to support your vision. Especially if your PhD vision is still blurry, an early chat might help you gain clarity. Choosing to do a PhD can be complex. It may force you to reflect deeply, you may face doubts, or you may need to gain confidence in an area that interests you. Are you worried about your CV? Remember that your curiosity, creativity, personality, and your unique path through life all contribute to your ability to do a PhD. Everyone has specific needs and life circumstances, and I would be glad to discuss how we can tailor your PhD to ensure they are cared for. I am also happy to assist in exploring potential topics or answering practical questions that you may have. As your vision becomes concrete, I can support you with your PhD application.

As a first step, I suggest exploring my research vision, papers, and projects. If a topic excites you (or you have general PhD questions), email me!

I also host postdoctoral researchers and interns. Email me to discuss opportunities.

Post-Doc Position iOpen

While I am always open to receive applications on any topic, I have currently a specific opening on Formal Verification of Compilers using Lean and MLIR.

PhD applications open!

I will be taking a small number of PhD students for the Sep 2025 term (an earlier start may be possible). Thanks to our new Computer Architecture Research Center we have funding for a cohort of PhD students. Use the summer months to get ready for your PhD application. If you are considering to work with me, drop me an email such that we can touch base early and that I can help you with any questions about your PhD. Feel particularly invited, if you feel unsure about doing a PhD.

Last updated: August 2024

Contact

Tobias Grosser

Department of Computer Science and Technology
University of Cambridge
15 JJ Thomson Ave
Cambridge CB3 0FD

tobias.grosser at cst.cam.ac.uk