Tobias Grosser

Starting fall 2020, I will be a reader (associate professor) in the School of Informatics at the University of Edinburgh and a member of the Edinburgh Compiler and Architecture Design Group.

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 all my research activities, I aim to:

  • address problems that have a clear impact on society,
  • learn about and advocate for diversity of gender, race, ...,
  • work collaboratively and share my research results as open-source,
  • show that well-being in my research group has a positive impact on our scientific output.

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.

NEWS: I just moved to Edinburgh and am building a new group. Hence, I am planning to take several Ph.D. students and postdoctoral researchers over the next year. Get in touch!

Are you interested in an internship or a postdoctoral research position? I regularly host postdoctoral researchers and interns. Email me and we'll take it from there!
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

Team

Previous Members

  • Jakub Lichman, M.Sc. Thesis, 2020
    Google (Internship with Albert Cohen and Oleksandre Zinenko)
  • Theodoros Theodoridis, Researcher, 2019 - 2020
    ETH Zurich (Ph.D. student with Zhendong Su)
  • Arjun Pitchanathan, Intern (M.Sc.), 2019 - 2020
    University of Edinburgh (Ph.D. with me)
  • Jean-Michel Gorius, Intern (M.Sc.), 2019
    University of Murcia (Internship with Alexandra Jimborean)
  • Mathieu Fehr, Intern (M.Sc.), 2019
    MIT CSAIL (Internship with Adam Chlipala)
  • Anastiasiia Ruzhanskaia, Intern (M.Sc.), 2018
    ETH Zurich (Ph.D. student with Timothy Roscoe)
Publications

Google Scholar
Contact
Tobias Grosser

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

first.last at ed.ac.uk