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!

  • 1x PostDoc, ?x PhD: Efficient Design of Multi-Domain Languages using Python and MLIR
    One PostDoc positon and a number of EPCC PhD Scholarships. We build a new ecosystem for designing DSLs where we mix Python and MLIR. This enables production-quality DSLs for climate modeling, medical imaging, and more: xDSL.dev.
  • 1x PhD: Formal Verification at the Boundary of Soft and Hardware
    PhD Scholarship, in collaboration with industry partners and the open-source community.
  • 1x PostDoc, 1x PhD: Rethinking Compiler Design
    I have funding for projects to rethink the interaction of humans and compilers.
    • Can we interactively design compilers?
    • Can we automate compiler design using program synthesis?
    • Can we make formal formal verification part of the daily LLVM/MLIR development?
  • 1x PostDoc, 1x PhD: Developer-guided compilation for Ultra-Low-Power and Security
    These positions are funded via the Horizion Europe CONVOLVE project. Can we make domain-specific security and performance constraints a first-class concept in a compiler, such that developers can state these constraints and the compiler uses them when targetting domain-specific hardware?
Openings last updated 05/04/2022. The topics and start dates are typically very flexible.
Team

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
Bea
I work on verification in CIRCT to make reliable, low-effort design more accessible.
Bea

Bea Healy

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

Mathieu Fehr

PhD
Sasha
Hi, I am Sasha!
Sasha

Sasha Lopoukhine

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

Siddharth Bhat

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

You

PhD
Anton
Hi, I am Anton!
Anton

Anton Lydike

Researcher
Emilien
Hi, I am Emilien!
Emilien

Emilien Bauer

Researcher
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

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
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

  • Yifan Xu, Intern

    2021
    Moved toUniversity of Edinburgh
    BSc Student (continuing)

  • David Bourke, MSc

    2021
    Moved toVyatta NOS group
    Performance 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

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
Publications

2022

2021

2020


Google Scholar
Contact
Tobias Grosser

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

first.last at ed.ac.uk