Tobias Grosser

Tobias Grosser

Tobias Grosser

Reader (Associate Professor) in
Compilers and Runtime Systems

University of Edinburgh


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?
Check out my research vision for details! In my research, I aim to:
  • address problems important to society,
  • advocate for diversity,
  • work with the open-source community,
  • show that well-being increases scientific performance.
I previously have been affiliated with:
Join

Are you considering a PhD? I really enjoy working with students! There is nothing more rewarding for me as a scientist than seeing a student develop and execute their very personal research vision. I am excited to provide you guidance along this path.

Explore my research vision, papers, and projects. If a topic catches your attention or you want to discuss your personal research idea, email me! I often have generic funding available that I can use on your very personal project and am always happy to guide you towards getting a PhD position.

I also regularly host postdoctoral researchers and interns. Just email me.

Project-specific openings available!

In the context of my current research projects, I also have some project-specific funding available.

Team

Anastasiia
I work with Timothy Roscoe on designing novel and faster data-flow frameworks.
Anastasiia

Anastasiia Ruzhanskaia

PhD
Arjun
Let's make polyhedral compilation fast! I design a modern constraint solver for Presburger arithmetic as an integral component of MLIR.
Arjun

Arjun Pitchanathan

PhD
Lorenzo
High-level abstractions enable powerful domain-specific optimizations! I automate the extraction of high-level abstractions in general-purpose programs using MLIR.
Lorenzo

Lorenzo Chelini

PhD
Mathieu
Compiler design should be effortless! I increase productivity by making MLIR declarative and dynamic.
Mathieu

Mathieu Fehr

PhD
Siddharth
Functional programming languages should share optimizations! I design functional abstractions in SSA that connect Lean and MLIR.
Siddharth

Siddharth Bhat

PhD
Theodoros
I developed a transprecision based constraint solver and now research the effectiveness of different compiler transformations (e.g., inlining).
Theodoros

Theodoros Theodoridis

PhD
You
Would enjoy working with us? Reach out to join us!
You

You

PhD
David
I research effective ways to express vectorized overflow-aware arithmetic in C/C++.
David

David Bourke

MSc
Anurudh
I develop a scalable verification infrastructure for the CIRCT open-source hardware design stack.
Anurudh

Anurudh Peduri

Intern
Yifan
I develop SSA-based IR abstractions for relational databases using MLIR.
Yifan

Yifan Xu

Intern
Christian
I develop fast and effective strategies to simplify Presburger expressions and research ways to use MLIR to optimize Python code.
Christian

Christian Ulmann

Collaborator
Kunwar Shaanjeet Singh
Let's build a polyhedral compilation stack for MLIR! I contribute to the Presburger library in MLIR and build on top of it central components for a polyhedral loop optimizer.
Kunwar Shaanjeet Singh

Kunwar Shaanjeet Singh Grover

Collaborator
Michel
I develop fast and effective strategies to simplify Presburger expressions and research ways to use MLIR to optimize Python code.
Michel

Michel Weber

Collaborator


Previous Members

  • 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

  • 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

Publications

2021

2020


Google Scholar
Research Vision

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
Contact
Tobias Grosser

School of Informatics
10 Crichton Street
Room: 1.04
Edinburgh EH8 9AB, United Kingdom

first.last at ed.ac.uk