Michel Steuwer

I am a lecturer (assistant professor) in compilers and runtime systems in the School of Informatics at the University of Edinburgh in Scotland. I am a member of the Compiler and Architecture Design Group (CArD), the Institute for Computing Systems Architecture (ICSA), and a visiting member of staff at the School of Computing Science at the University of Glasgow.

Before joining the faculty in Edinburgh I was a lecturer in the School of Computing Science at the University of Glasgow. Prior to that I was a postdoctoral researcher at the School of Informatics at the University of Edinburgh. I received my PhD from the University of Münster in Germany.

You can download my CV here.

Research

I am interested in all aspects of parallel programming. Particular research interests of mine include performance portability, structured parallel programming, heterogeneous and GPU computing, and novel compilation techniques for high-level languages.

Team

PhD Students

Former Students

  • Federico Pizzuti, 2017 - 2022, Efficient Code Generation for Irregular Applications with Lift, supervised with Christophe Dubach.
    Now: Huawei Research Edinburgh
  • Larisa Stoltzfus, 2016 - 2021, Stencil-based HPC Applications in Lift, supervised with Christophe Dubach.
    Now: Application Consultant at EPCC
  • Toomas Remmelg, 2015 - 2019, Automatic Performance Optimisation of Parallel Programs for GPUs via Rewrite Rules, supervised with Christophe Dubach.
    Now: Senior Compiler Engineer at ARM
  • Bastian Hagedorn, 2016 - 2019, High-Performance Domain-Specific Compilation without Domain-Specific Compilers, supervised with Sergei Gorlatch.
    Now: Senior Compiler Engineer at NVIDIA
  • Michael Haidl, 2013 - 2018, PACXX: a Unified Programming Model for Programming Accelerators, supervised with Sergei Gorlatch.
    Now: Senior Compiler Engineer at NVIDIA
  • Juan Jose Fumero, 2014 - 2017, Accelerating Interpreted Programming Languages on GPUs with Just-in-Time Compilation and Runtime Optimisations, supervised with Christophe Dubach.
    Now: Postdoc at the University of Manchester

Publications

You can also find my publications on my dblp profile and my Google Scholar profile.

2022
Michel Steuwer, Thomas Koehler, Bastian Köpcke, and Federico Pizzuti
2021
Rongxiao Fu, Xueying Qin, Ornela Dardha, and Michel Steuwer
2020
John Magnus Morton, Kuba Kaszyk, Lu Li, Jiawen Sun, Christophe Dubach, Michel Steuwer, Murray Cole, and Michael F. P. O’Boyle
Bastian Hagedorn, Johannes Lenfers, Thomas Koehler, Xueying Qin, Sergei Gorlatch, Michel Steuwer
Bastian Hagedorn, Johannes Lenfers, Thomas Koehler, Sergei Gorlatch, and Michel Steuwer
Martin Lücke, Michel Steuwer, and Aaron Smith
2019
Naums Mogers, Aaron Smith, Dimitrios Vytiniotis, Michel Steuwer, Christophe Dubach, and Ryota Tomioka
2018
Gordon Brown, Christopher Di Bella, Michael Haidl, Toomas Remmelg, Ruyman Reyes, and Michel Steuwer
Gordon Brown, Christopher Di Bella, Michael Haidl, Toomas Remmelg, Ruyman Reyes, Michel Steuwer, Michael Wong
2017
2016
2015
2014
2013
2012
2011

Talks

2022
How to Design the Next 700 Optimizing Compilers High-efficiency computer graphics group at MIT CSAIL
RISE & Shine: Language-Oriented Compiler Design Compiler Design Lab Seminar, Saarbrücken
Systematically Extending a High-Level CodeGenerator with Support for Tensor Cores Workshop on General Purpose Processing using GPU (GPGPU)
2021
FHPNC Community Update Workshop on Functional High-Performance and Numerical Computing (FHPNC)
2020
Achieving High-Performance the Functional Way -- Expressing High-Performance Optimizations as Rewrite Strategies Programming Languages and Systems Research Group (PLAS) group of the University of Kent
Compiler Intermediate Representations - Part 4 Scottish Programming Languages and Verification Summer School 2020 (SPLV 2020)
Compiler Intermediate Representations - Part 3 Scottish Programming Languages and Verification Summer School 2020 (SPLV 2020)
Compiler Intermediate Representations - Part 2 Scottish Programming Languages and Verification Summer School 2020 (SPLV 2020)
Compiler Intermediate Representations - Part 1 Scottish Programming Languages and Verification Summer School 2020 (SPLV 2020)
Achieving High-Performance the Functional Way -- Expressing High-Performance Optimizations as Rewrite Strategies Scottish Programming Languages Seminar (SPLS)
2019
ELEVATE: a language to write composable program optimisations DeepMind
ELEVATE: a language to write composable program optimisations Chair of Compiler Construction, TU Dresden
Lift & Elevate: Generating High Performance Code with Rewrite Rules and Strategies Huawei Research Dresden
Lift & Elevate: Generating High Performance Code with Rewrite Rules and Strategies Programming Languages and Software Engineering Group, University of Washington
Lift & Elevate: Generating High Performance Code with Rewrite Rules and Strategies Microsoft Research Lab
2018
Generating Performance Portable Code with Lift Shonan Meeting No.134 on Advances in Heterogeneous Computing from Hardware to Software
Lift: Code Generation by Rewriting Algorithmic Skeletons Schloss Dagstuhl Seminar 18111 on Loop Optimization
Programming GPUs with Eager Actions and Lazy Views Compiler and Architecture Design Group Seminar
The Lift Project: Performance Portable Parallel Code Generation via Rewrite Rules FATA Seminar at the University of Glasgow
2017
The Lift Project: Performance Portable Parallel Code Generation via Rewrite Rules System Seminar at the University of Glasgow
The Lift Project: Performance Portable Parallel Code Generation via Rewrite Rules Microsoft Research Lab
The Lift Project: Performance Portable Parallel Code Generation via Rewrite Rules University of Hull HPC Symposium 2017
The Lift Project: Performance Portable Parallel Code Generation via Rewrite Rules Parallel and Distributed Systems Group, University of Münster
Towards Composable GPU Programming: Programming GPUs with Eager Actions and Lazy Views C++ Edinburgh Meetup
Lightning talk at the MaRIONet Launch Meeting in London MaRIONet Launch Meeting
2016
The Lift Project: Performance Portable GPU Code Generation via Rewrite Rules Computer Laboratory Systems Research Group Seminar, University of Cambridge
DSLs and rewrite-based optimizations for performance-portable parallel programming Elements of Programming Languages course at the University of Edinburgh held by James Cheney
Structured Parallel Programming — From High-Level Functional Expressions to High- Performance OpenCL Code Center for Advanced Electronics Dresden, Dresden University of Technology
Improving Programmability and Performance Portability on Many-Core Processors Colloquium of candidates nominated for the prize for best dissertation awarded by the German Informatics Society, Schloss Dagstuhl
The lift Project: Performance Portability via Rewrite Rules Compiler Design Lab, Saarland University
Performance Portable GPU Code Generation Multicore Programming and Software Performance Optimisation Groups, Imperial College London
2015
Functional Programming in C++ Programming Language Interest Group at the University of Edinburgh
Generating Performance Portable Code using Rewrite Rules PENCIL Developer Meeting at Imperial College London
DSLs and rewrite-based optimizations for performance-portable parallel programming Elements of Programming Languages course at the University of Edinburgh held by James Cheney
Generating Performance Portable Code using Rewrite Rules: From High-Level Functional Expressions to High-Performance OpenCL Code International Conference on Functional Programming (ICFP) 2015
2014
SkelCL: High-Level Programming of Multi-GPU Systems Institute for Computational and Applied Mathematics, University of Münster
SkelCL: High-Level Programming of Multi-GPU Systems Workshop on Fast Data Processing on GPUs
Extending the SkelCL Library for Stencil Computations on Multi-GPU Systems HiStencils 2014 workshop
2013
SkelCL: High-Level Programming of Multi-GPU Systems Research group on elementary particle physics, University of Wuppertal
Introducing and Implementing the Allpairs Skeleton for GPU Systems HLPP 2013 workshop
High-Level Programming for Medical Imaging on Multi-GPU Systems using the SkelCL Library ICCS 2013 conference
2012
Using the SkelCL Library for High-Level GPU Programming of 2D Applications ParaPhrase 2012 workshop held in conjunction with Euro-Par 2012
High-Level Programming for Heterogeneous Systems with Accelerators PDESoft 2012 workshop
Towards High-Level Programming of Multi-GPU Systems Using the SkelCL Library AsHES 2012 workshop held in conjunction with IPDPS 2012
A Skeleton Library for Heterogeneous Multi-/Many-Core Systems NAIS workshop
Towards a High-Level Approach for Programming Distributed Systems with GPUs COST Action IC0805 (“ComplexHPC”) meeting
2011
SkelCL — A High-Level Programming Library for GPU Programming Jülich Supercomputing Centre (JSC)
SkelCL — A Portable Skeleton Library for High-Level GPU Programming HIPS 2011 workshop held in conjunction with IPDPS 2011
2008
Development of an Online Game as a Student Project ITSoftTEAM workshop

Community Activities

Steering Committee Member of
Program Committee Member of
Artifact Evaluation Committee Member of
Artifact Evaluation Chair of
Local Organisation Co-Chair of
Web Chair of

Teaching

I am and have been teaching the following courses.

2021-2022
  • Operating Systems, undergraduate course, course lead by Antonio Barbalace, about 150 students
  • Compiling Techniques, undergraduate course, course lead by Tobias Grosser, about 100 students
2020-2021
  • Operating Systems, undergraduate course, course lead by Antonio Barbalace, about 150 students
2019-2020
  • Software Engineering Team Projects, undergraduate course, course lead by Tim Storer, about 200 students
  • Systems Programming, undergraduate course, about 200 students
2018-2019
  • Software Engineering Team Projects, undergraduate course, course lead by Tim Storer, about 180 students
  • Systems Programming, undergraduate course, about 180 students
2017-2018
  • Software Engineering Team Projects, undergraduate course, course lead by Tim Storer, about 160 students
  • Operating Systems, undergraduate course, course lead by Wim Vanderbauwhede, about 80 students

Contact

Email Address:   michel.steuwer@ed.ac.uk