Reader (Associate Professor) in
Compilers and Runtime Systems
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?
- address problems important to society,
- advocate for diversity,
- work with the open-source community,
- show that well-being increases scientific performance.
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?
Kunwar Shaanjeet Singh Grover
- Yifan Xu, Intern
Moved toUniversity of Edinburgh
BSc Student (continuing)
- David Bourke, MSc
Moved toVyatta NOS group
- Anurudh Peduri, Intern
2020 - 2022
Moved toRuhr-Universität Bochum
PhD with Michael Walter
- Christoph Mueller, Researcher
Scientific Software Developer
- Jakub Lichman, M.Sc. Thesis
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.)
Moved toUniversity of Murcia
Internship with Alexandra Jimborean
- Mathieu Fehr, Intern (M.Sc.)
Moved toMIT CSAIL
Internship with Adam Chlipala
- Lorenzo Chelini, PhD
2018 - 2020
Moved toIntel Zurich
- Anastiasiia Ruzhanskaia, Intern (M.Sc.)
Moved toETH Zurich
Ph.D. student with Timothy Roscoe
- Tobias Gysi, PhD Student & Postdoctoral Researcher
2014 - 2020
Moved toGoogle Zurich
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:
- 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
- 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
- ASPLOSUnderstanding and Exploiting Optimal Function Inlining ↞ New!
Theodoros Theodoridis, Tobias Grosser, Zhendong Su
- PLDIIRDL: An IR Definition Language for SSA Compilers ↞ New!
Mathieu Fehr, Jeff Niu, River Riddle, Mehdi Amini, Zhendong Su, Tobias Grosser
- ICSTMetamorphic Fuzzing of C++ Libraries ↞ New!
Andrei Lascu, Alastair Donaldson, Tobias Grosser, Torsten Hoefler
- CGOLambda the Ultimate SSA: Optimizing Functional Programs in SSA ↞ New!
Siddharth Bhat, Tobias Grosser
- CCQSSA: An SSA-Based IR for Quantum Computing ↞ New!
Anurudh Peduri, Siddharth Bhat, Tobias Grosser
- CCQRANE: Lifting QASM Programs to an Affine IR ↞ New!
Blake Gerard, Tobias Grosser, Martin Kong
- OOPSLAFPL: Fast Presburger Arithmetic through Transprecision
Arjun Pitchanathan, Christian Ulmann, Michel Weber, Torsten Hoefler, Tobias Grosser
- TCADOCC: An Automated End-to-End Machine Learning Optimizing Compiler for Computing-In-Memory
Adam Siemieniuk, Lorenzo Chelini, Asif Ali Khan, Jeronimo Castrillon, Andi Drebes, Henk Corporaal, Tobias Grosser, Martin Kong
- CGOProgressive Raising in Multi-level IR
Lorenzo Chelini, Andi Drebes, Oleksandr Zinenko, Albert Cohen, Nicolas Vasilache, Tobias Grosser, Henk Corporaal
- SCOPESLoopOpt: Declarative Transformations Made Easy
Lorenzo Chelini, Martin Kong, Tobias Grosser, Henk Corporaal
- TACODomain-Specific Multi-Level IR Rewriting for GPU: The Open Earth Compiler for GPU-Accelerated Climate Simulation
Tobias Gysi, Christoph Müller, Oleksandr Zinenko, Stephan Herhut, Eddie Davis, Tobias Wicky, Oliver Fuhrer, Torsten Hoefler, Tobias Grosser
- TPDSWork-stealing prefix scan: Addressing load imbalance in large-scale image registration
Marcin Copik, Tobias Grosser, Torsten Hoefler, Paolo Bientinesi, Benjamin Berkels
- PPoPPExtracting Clean Performance Models from Tainted Programs
Marcin Copik, Alexandru Calotoiu, Tobias Grosser, Nicolas Wicki, Felix Wolf, Torsten Hoefler
- OOPSLAFast Linear Programming through Transprecision Computing on Small and Sparse Data
Tobias Grosser, Theodoros Theodoridis, Maximilian Falkenstein, Arjun Pitchanathan, Michael Kruse, Manuel Rigger, Zhendong Su, Torsten Hoefler
- PACTAutomatic Generation of Multi-Objective Polyhedral Compiler Transformations
Lorenzo Chelini, Tobias Gysi, Tobias Grosser, Martin Kong, Henk Corporaal
- TCADPolyhedral Compilation for Racetrack Memories
Asif Ali Khan, Hauke Mewes, Tobias Grosser, Torsten Hoefler, Jeronimo Castrillon
- PLDILLHD: A Multi-Level Intermediate Representation for Hardware Description Languages
Fabian Schueki, Andreas Kurth, Tobias Grosser, Luca Benini
- EuroLLVMMultiLevel Tactics: Lifting loops in MLIR
Lorenzo Chelini, Andi Drebes, Oleksandr Zinenko, Albert Cohen, Henk Corporaal, Tobias Grosser, Nicolas Vasilache
- CCMixed-data-model heterogeneous compilation and OpenMP offloading
Andreas Kurth, Koen Wolters, Björn Forsberg, Alessandro Capotondi, Andrea Marongiu, Tobias Grosser, Luca Benini
- SPMACompiling Neural Networks for a Computational Memory Accelerator
Kornilios Kourtis, Martino Dazzi, Nikolas Ioannou, Tobias Grosser, Abu Sebastian, Evangelos Eleftheriou
- IMPACTTC-CIM: Empowering Tensor Comprehensions for Computing-In-Memory
Andi Drebes, Lorenzo Chelini, Oleksandr Zinenko, Albert Cohen, Henk Corporaal, Tobias Grosser, Kanishkan Vadivel, Nicolas Vasilache
School of Informatics
10 Crichton Street
Edinburgh EH8 9AB, United Kingdom
first.last at ed.ac.uk