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

  • Arjun Pitchanathan, Intern (M.Sc.)

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

  • Theodoros Theodoridis, Researcher

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

  • 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