Dr Michel Steuwer

  • Lecturer (Computing Science)

telephone: +44 (0)141 330 1646
email: Michel.Steuwer@glasgow.ac.uk

Biography

Personal Website: https://michel-steuwer.github.io

I am a lecturer (assistant professor) in the School of Computing Science at the University of Glasgow in Scotland. I am a member of the the GLAsgow Systems Section (GLASS), the Glasgow Parallelism Group (GPG), and a visiting member of the Compiler and Architecture Design Group (CArD) at the University of Edinburgh.

Before joining Glasgow I was a postdoctoral researcher at the School of Informatics at the University of Edinburgh. I received my Ph.D. from the University of Münster in Germany.

Research interests

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

Research Projects:

  • Lift is a project aiming to achieve performance portability across modern parallel architectures. The Lift compiler transforms a program expressed in the high-level Lift programming language into optimised low-level OpenCL code. In this transformation optimisations are automatically explored using a set of rewrite rules. Lift is open source software available on GitHub. Lift has been described in multiple research publications. Lift is actively developed by a research team including currently six PhD students based in Scotland and Germany.

  • PACXX allows programming of accelerators with modern C++. PACXX is developed by Michael Haidl at the University of Münster. In a series of collaborative publications we explore challenges of heterogeneous compiler implementations and the design of modern C++ range-based libraries for parallel programming.

  • GPU Compilation for Interpreted Languages is the one of the first solutions for compiling a dynamic interpreted programming language – namely R – to GPU code. The generation of GPU code happens at runtime after crucial information of the program, such as data types, have been observed by profiling. Juan Fumero has developed our implementation which is described in our recent paper.

  • Marawacc is a solution for GPU programming from Java. Marawacc combines a library interface similar to the stream API from Java 8 and a compiler which generates OpenCL code from Java byte code at runtime. Data management optimisations eliminate the overhead of data marshalling. Marawacc is open source software available on Bitbucket. Marawacc has been described in multiple publications and has been developed by Juan Fumero.

  • SkelCL is a library providing high-level abstractions to alleviate programming of modern parallel heterogeneous systems comprising of multi-core CPUs and GPUs. SkelCL is open source software available on GitHub. SkelCL has been described in multiple research publications. SkelCL is no longer under active development.

Publications

List by: Type | Date

Jump to: 2017 | 2016 | 2015 | 2014 | 2013 | 2012 | 2011
Number of items: 25.

2017

Fumero, J., Steuwer, M., Stadler, L. and Dubach, C. (2017) Just-In-Time GPU Compilation for Interpreted Languages with Partial Evaluation. In: VEE '17 Proceedings of the 13th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, Xi'an, China, 08-09 Apr 2017, ISBN 9781450349482 (doi:10.1145/3050748.3050761)

Steuwer, M., Remmelg, T. and Dubach, C. (2017) Lift: a Functional Data-Parallel IR for High-Performance GPU Code Generation. In: 2017 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), Austin, TX, USA, 04-08 Feb 2017, pp. 74-85. ISBN 9781509049318 (doi:10.1109/CGO.2017.7863730)

Haidl, M., Steuwer, M., Dirks, H., Humernbrum, T. and Gorlatch, S. (2017) Towards Composable GPU Programming: Programming GPUs with Eager Actions and Lazy Views. In: Proceedings of the 8th International Workshop on Programming Models and Applications for Multicores and Manycores, Austin, TX, USA, 04-08 Feb 2017, ISBN 9781450348836 (doi:10.1145/3026937.3026942)

2016

Steuwer, M., Remmelg, T. and Dubach, C. (2016) Matrix Multiplication Beyond Auto-Tuning: Rewrite-Based GPU Code Generation. In: CASES '16 Proceedings of the International Conference on Compilers, Architectures and Synthesis for Embedded Systems, Pittsburgh, PA, USA, 01-07 Oct 2016, p. 15. (doi:10.1145/2968455.2968521)

Haidl, M., Steuwer, M., Humernbrum, T. and Gorlatch, S. (2016) Multi-Stage Programming for GPUs in C++ using PACXX. GPGPU '16 Proceedings of the 9th Annual Workshop on General Purpose Processing using Graphics Processing Unit, Barcelona, Spain, 12 Mar 2016. pp. 32-41. ISBN 9781450341950 (doi:10.1145/2884045.2884049)

Remmelg, T., Lutz, T., Steuwer, M. and Dubach, C. (2016) Performance Portable GPU Code Generation for Matrix Multiplication. GPGPU '16 Proceedings of the 9th Annual Workshop on General Purpose Processing using Graphics Processing Unit, Barcelona, Spain, 12 Mar 2016. pp. 22-31. ISBN 9781450341950 (doi:10.1145/2884045.2884046)

Cummins, C., Petoumenos, P., Steuwer, M. and Leather, H. (2016) Autotuning OpenCL Workgroup Size for Stencil Patterns. The 6th International Workshop on Adaptive Self-tuning Computing Systems, Prague, Czech Republic, 18 Jan 2016.

Steuwer, M. (2016) Verbesserung der Programmierbarkeit und Performance-Portabilität von Manycore-Prozessoren. In: Hölldobler, S. and Bernstein, A. (eds.) Ausgezeichnete Informatikdissertationen 2015. GI, pp. 269-278. ISBN 9783885799757

2015

Fumero, J., Remmelg, T., Steuwer, M. and Dubach, C. (2015) Runtime Code Generation and Data Management for Heterogeneous Computing in Java. In: PPPJ '15 Proceedings of the Principles and Practices of Programming on The Java Platform, Melbourne, FL, USA, 08-11 Sep 2015, pp. 16-26. ISBN 9781450337120 (doi:10.1145/2807426.2807428)

Steuwer, M., Fensch, C., Lindley, S. and Dubach, C. (2015) Generating Performance Portable Code Using Rewrite Rules: from High-Level Functional Expressions to High-Performance OpenCL Code. In: ICFP 2015 Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming, Vancouver, BC, Canada, 31 Aug - 02 Sep 2015, pp. 205-217. ISBN 9781450336697 (doi:10.1145/2784731.2784754)

Gorlatch, S. and Steuwer, M. (2015) Towards high-level programming for systems with many cores. Lecture Notes in Computer Science, 8974, pp. 111-126. (doi:10.1007/978-3-662-46823-4_10)

2014

Olejnik, M., Steuwer, M., Gorlatch, S. and Heider, D. (2014) gCUP: rapid GPU-based HIV-1 co-receptor usage prediction for next-generation sequencing. Bioinformatics, 30(22), pp. 3272-3273. (doi:10.1093/bioinformatics/btu535) (PMID:25123901)

Steuwer, M., Friese, M., Albers, S. and Gorlatch, S. (2014) Introducing and implementing the allpairs skeleton for programming multi-GPU systems. International Journal of Parallel Programming, 42(4), pp. 601-618. (doi:10.1007/s10766-013-0265-6)

Steuwer, M., Haidl, M., Breuer, S. and Gorlatch, S. (2014) High-level programming of stencil computations on multi-GPU systems using the SkelCL library. Parallel Processing Letters, 24(3), 1441005. (doi:10.1142/S0129626414410059)

Steuwer, M. and Gorlatch, S. (2014) SkelCL: a high-level extension of OpenCL for multi-GPU systems. Journal of Supercomputing, 69(1), pp. 25-33. (doi:10.1007/s11227-014-1213-y)

Fumero, J. J., Steuwer, M. and Dubach, C. (2014) A Composable Array Function Interface for Heterogeneous Computing in Java. In: ARRAY'14: Proceedings of the 2014 ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming, Edinburgh, UK, 09-11 Jun 2014, pp. 44-49. ISBN 9781450329378 (doi:10.1145/2627373.2627381)

2013

Kegel, P., Steuwer, M. and Gorlatch, S. (2013) dOpenCL: towards uniform programming of distributed heterogeneous multi-/many-core systems. Journal of Parallel and Distributed Computing, 73(12), pp. 1639-1648. (doi:10.1016/j.jpdc.2013.07.021)

Kegel, P., Steuwer, M. and Gorlatch, S. (2013) Uniform High-Level Programming of Many-Core and Multi-GPU Systems. In: Transition of HPC Towards Exascale Computing: Biennial High Performance Computing Workshop, Cetraro, Italy, 25-29 Jun 2012, pp. 159-176. ISBN 9781614993230 (doi:10.3233/978-1-61499-324-7-159)

Steuwer, M. and Gorlatch, S. (2013) High-Level Programming for Medical Imaging on Multi-GPU Systems Using the SkelCL Library. In: 2013 International Conference on Computational Science (ICCS 2013), Barcelona, Spain, 05-07 Jun 2013, pp. 749-758. (doi:10.1016/j.procs.2013.05.239)

Steuwer, M. and Gorlatch, S. (2013) SkelCL: enhancing OpenCL for high-level programming of multi-GPU systems. In: Parallel Computing Technologies - 12th International Conference, PaCT 2013, St. Petersburg, Russia, 30 Sep - 04 Oct 2013, pp. 258-272. ISBN 9783642399572 (doi:10.1007/978-3-642-39958-9_24)

2012

Kegel, P., Steuwer, M. and Gorlatch, S. (2012) dOpenCL: Towards a Uniform Programming Approach for Distributed Heterogeneous Multi-/Many-Core Systems. In: 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum (IPDPSW), Shanghai, China, 21-25 May 2012, pp. 174-186. ISBN 9781467309745 (doi:10.1109/IPDPSW.2012.16)

Steuwer, M., Gorlatch, S., Buß, M. and Breuer, S. (2012) Using the SkelCL Library for High-Level GPU Programming of 2D Applications. In: Euro-Par 2012: Parallel Processing Workshops, Rhodes Island, Greece, 27-31 Aug 2012, pp. 370-380. ISBN 9783642369483 (doi:10.1007/978-3-642-36949-0_41)

Steuwer, M., Kegel, P. and Gorlatch, S. (2012) A High-Level Programming Approach for Distributed Systems with Accelerators. In: New Trends in Software Methodologies, Tools and Techniques - Proceedings of the Eleventh SoMeT '12, Genoa, Italy, 26-28 Sep 2012, pp. 430-441. ISBN 9781614991243 (doi:10.3233/978-1-61499-125-0-430)

Steuwer, M., Kegel, P. and Gorlatch, S. (2012) Towards High-Level Programming of Multi-GPU Systems Using the SkelCL Library. In: 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum (IPDPSW), Shanghai, China, 21-25 May 2012, pp. 1858-1865. ISBN 9781467309745 (doi:10.1109/IPDPSW.2012.229)

2011

Steuwer, M., Kegel, P. and Gorlatch, S. (2011) SkelCL - A Portable Skeleton Library for High-Level GPU Programming. In: 25th IEEE International Symposium on Parallel and Distributed Processing (IPDPS 2011), Anchorage, AK, USA, 16-20 May 2011, pp. 1176-1182. ISBN 9781612844251 (doi:10.1109/IPDPS.2011.269)

This list was generated on Wed Oct 18 02:05:30 2017 BST.
Number of items: 25.

Articles

Gorlatch, S. and Steuwer, M. (2015) Towards high-level programming for systems with many cores. Lecture Notes in Computer Science, 8974, pp. 111-126. (doi:10.1007/978-3-662-46823-4_10)

Olejnik, M., Steuwer, M., Gorlatch, S. and Heider, D. (2014) gCUP: rapid GPU-based HIV-1 co-receptor usage prediction for next-generation sequencing. Bioinformatics, 30(22), pp. 3272-3273. (doi:10.1093/bioinformatics/btu535) (PMID:25123901)

Steuwer, M., Friese, M., Albers, S. and Gorlatch, S. (2014) Introducing and implementing the allpairs skeleton for programming multi-GPU systems. International Journal of Parallel Programming, 42(4), pp. 601-618. (doi:10.1007/s10766-013-0265-6)

Steuwer, M., Haidl, M., Breuer, S. and Gorlatch, S. (2014) High-level programming of stencil computations on multi-GPU systems using the SkelCL library. Parallel Processing Letters, 24(3), 1441005. (doi:10.1142/S0129626414410059)

Steuwer, M. and Gorlatch, S. (2014) SkelCL: a high-level extension of OpenCL for multi-GPU systems. Journal of Supercomputing, 69(1), pp. 25-33. (doi:10.1007/s11227-014-1213-y)

Kegel, P., Steuwer, M. and Gorlatch, S. (2013) dOpenCL: towards uniform programming of distributed heterogeneous multi-/many-core systems. Journal of Parallel and Distributed Computing, 73(12), pp. 1639-1648. (doi:10.1016/j.jpdc.2013.07.021)

Book Sections

Steuwer, M. (2016) Verbesserung der Programmierbarkeit und Performance-Portabilität von Manycore-Prozessoren. In: Hölldobler, S. and Bernstein, A. (eds.) Ausgezeichnete Informatikdissertationen 2015. GI, pp. 269-278. ISBN 9783885799757

Conference or Workshop Item

Haidl, M., Steuwer, M., Humernbrum, T. and Gorlatch, S. (2016) Multi-Stage Programming for GPUs in C++ using PACXX. GPGPU '16 Proceedings of the 9th Annual Workshop on General Purpose Processing using Graphics Processing Unit, Barcelona, Spain, 12 Mar 2016. pp. 32-41. ISBN 9781450341950 (doi:10.1145/2884045.2884049)

Remmelg, T., Lutz, T., Steuwer, M. and Dubach, C. (2016) Performance Portable GPU Code Generation for Matrix Multiplication. GPGPU '16 Proceedings of the 9th Annual Workshop on General Purpose Processing using Graphics Processing Unit, Barcelona, Spain, 12 Mar 2016. pp. 22-31. ISBN 9781450341950 (doi:10.1145/2884045.2884046)

Cummins, C., Petoumenos, P., Steuwer, M. and Leather, H. (2016) Autotuning OpenCL Workgroup Size for Stencil Patterns. The 6th International Workshop on Adaptive Self-tuning Computing Systems, Prague, Czech Republic, 18 Jan 2016.

Conference Proceedings

Fumero, J., Steuwer, M., Stadler, L. and Dubach, C. (2017) Just-In-Time GPU Compilation for Interpreted Languages with Partial Evaluation. In: VEE '17 Proceedings of the 13th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments, Xi'an, China, 08-09 Apr 2017, ISBN 9781450349482 (doi:10.1145/3050748.3050761)

Steuwer, M., Remmelg, T. and Dubach, C. (2017) Lift: a Functional Data-Parallel IR for High-Performance GPU Code Generation. In: 2017 IEEE/ACM International Symposium on Code Generation and Optimization (CGO), Austin, TX, USA, 04-08 Feb 2017, pp. 74-85. ISBN 9781509049318 (doi:10.1109/CGO.2017.7863730)

Haidl, M., Steuwer, M., Dirks, H., Humernbrum, T. and Gorlatch, S. (2017) Towards Composable GPU Programming: Programming GPUs with Eager Actions and Lazy Views. In: Proceedings of the 8th International Workshop on Programming Models and Applications for Multicores and Manycores, Austin, TX, USA, 04-08 Feb 2017, ISBN 9781450348836 (doi:10.1145/3026937.3026942)

Steuwer, M., Remmelg, T. and Dubach, C. (2016) Matrix Multiplication Beyond Auto-Tuning: Rewrite-Based GPU Code Generation. In: CASES '16 Proceedings of the International Conference on Compilers, Architectures and Synthesis for Embedded Systems, Pittsburgh, PA, USA, 01-07 Oct 2016, p. 15. (doi:10.1145/2968455.2968521)

Fumero, J., Remmelg, T., Steuwer, M. and Dubach, C. (2015) Runtime Code Generation and Data Management for Heterogeneous Computing in Java. In: PPPJ '15 Proceedings of the Principles and Practices of Programming on The Java Platform, Melbourne, FL, USA, 08-11 Sep 2015, pp. 16-26. ISBN 9781450337120 (doi:10.1145/2807426.2807428)

Steuwer, M., Fensch, C., Lindley, S. and Dubach, C. (2015) Generating Performance Portable Code Using Rewrite Rules: from High-Level Functional Expressions to High-Performance OpenCL Code. In: ICFP 2015 Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming, Vancouver, BC, Canada, 31 Aug - 02 Sep 2015, pp. 205-217. ISBN 9781450336697 (doi:10.1145/2784731.2784754)

Fumero, J. J., Steuwer, M. and Dubach, C. (2014) A Composable Array Function Interface for Heterogeneous Computing in Java. In: ARRAY'14: Proceedings of the 2014 ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming, Edinburgh, UK, 09-11 Jun 2014, pp. 44-49. ISBN 9781450329378 (doi:10.1145/2627373.2627381)

Kegel, P., Steuwer, M. and Gorlatch, S. (2013) Uniform High-Level Programming of Many-Core and Multi-GPU Systems. In: Transition of HPC Towards Exascale Computing: Biennial High Performance Computing Workshop, Cetraro, Italy, 25-29 Jun 2012, pp. 159-176. ISBN 9781614993230 (doi:10.3233/978-1-61499-324-7-159)

Steuwer, M. and Gorlatch, S. (2013) High-Level Programming for Medical Imaging on Multi-GPU Systems Using the SkelCL Library. In: 2013 International Conference on Computational Science (ICCS 2013), Barcelona, Spain, 05-07 Jun 2013, pp. 749-758. (doi:10.1016/j.procs.2013.05.239)

Steuwer, M. and Gorlatch, S. (2013) SkelCL: enhancing OpenCL for high-level programming of multi-GPU systems. In: Parallel Computing Technologies - 12th International Conference, PaCT 2013, St. Petersburg, Russia, 30 Sep - 04 Oct 2013, pp. 258-272. ISBN 9783642399572 (doi:10.1007/978-3-642-39958-9_24)

Kegel, P., Steuwer, M. and Gorlatch, S. (2012) dOpenCL: Towards a Uniform Programming Approach for Distributed Heterogeneous Multi-/Many-Core Systems. In: 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum (IPDPSW), Shanghai, China, 21-25 May 2012, pp. 174-186. ISBN 9781467309745 (doi:10.1109/IPDPSW.2012.16)

Steuwer, M., Gorlatch, S., Buß, M. and Breuer, S. (2012) Using the SkelCL Library for High-Level GPU Programming of 2D Applications. In: Euro-Par 2012: Parallel Processing Workshops, Rhodes Island, Greece, 27-31 Aug 2012, pp. 370-380. ISBN 9783642369483 (doi:10.1007/978-3-642-36949-0_41)

Steuwer, M., Kegel, P. and Gorlatch, S. (2012) A High-Level Programming Approach for Distributed Systems with Accelerators. In: New Trends in Software Methodologies, Tools and Techniques - Proceedings of the Eleventh SoMeT '12, Genoa, Italy, 26-28 Sep 2012, pp. 430-441. ISBN 9781614991243 (doi:10.3233/978-1-61499-125-0-430)

Steuwer, M., Kegel, P. and Gorlatch, S. (2012) Towards High-Level Programming of Multi-GPU Systems Using the SkelCL Library. In: 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum (IPDPSW), Shanghai, China, 21-25 May 2012, pp. 1858-1865. ISBN 9781467309745 (doi:10.1109/IPDPSW.2012.229)

Steuwer, M., Kegel, P. and Gorlatch, S. (2011) SkelCL - A Portable Skeleton Library for High-Level GPU Programming. In: 25th IEEE International Symposium on Parallel and Distributed Processing (IPDPS 2011), Anchorage, AK, USA, 16-20 May 2011, pp. 1176-1182. ISBN 9781612844251 (doi:10.1109/IPDPS.2011.269)

This list was generated on Wed Oct 18 02:05:30 2017 BST.