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!In the context of my current research projects, I also have some project-specific funding available.
- Formal Verification at the Boundary of Soft and Hardware
PhD Scholarship, Start: Sep 2021 (flexible)
Kunwar Shaanjeet Singh Grover
- Christoph Mueller, Researcher
Scientific Software Developer
- Jakub Lichman, M.Sc. Thesis
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.)
Moved toUniversity of Murcia
Internship with Alexandra Jimborean
- Mathieu Fehr, Intern (M.Sc.)
Moved toMIT CSAIL
Internship with Adam Chlipala
- 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
- TACODomain-Specific Multi-Level IR Rewriting for GPU: The Open Earth Compiler for GPU-Accelerated Climate Simulation ↞ New!
Tobias Gysi, Christoph Müller, Oleksandr Zinenko, Stephan Herhut, Eddie Davis, Tobias Wicky, Oliver Fuhrer, Torsten Hoefler, Tobias Grosser
- TCADOCC: An Automated End-to-End Machine Learning Optimizing Compiler for Computing-In-Memory ↞ New!
Adam Siemieniuk, Lorenzo Chelini, Asif Ali Khan, Jeronimo Castrillon, Andi Drebes, Henk Corporaal, Tobias Grosser, Martin Kong
- TPDSWork-stealing prefix scan: Addressing load imbalance in large-scale image registration ↞ New!
Marcin Copik, Tobias Grosser, Torsten Hoefler, Paolo Bientinesi, Benjamin Berkels
- CGOProgressive Raising in Multi-level IR ↞ New!
Lorenzo Chelini, Andi Drebes, Oleksandr Zinenko, Albert Cohen, Nicolas Vasilache, Tobias Grosser, Henk Corporaal
- PPoPPExtracting Clean Performance Models from Tainted Programs ↞ New!
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
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
School of Informatics
10 Crichton Street
Edinburgh EH8 9AB, United Kingdom
first.last at ed.ac.uk