-
Research Areas
- Algorithmic skeletons
- SkelCL – A Skeleton Library for Heterogeneous Systems
- GPU computing
- Parallel computing
Dr. Michel Steuwer
Institute of Computer ScienceCV
Education
- -
- Ph.D. studies in computer science
- -
- Computer science graduate program (Diploma degree)
Positions
- since
- Research Associate at the University of Edinburgh
- -
- Visiting researcher at the University of Edinburgh
- -
- Research associate at the University of Münster
- -
- Visiting researcher at the University of Edinburgh
- -
- Visiting researcher at the University of Edinburgh
- -
- Visiting researcher at the University of Edinburgh
- -
- Student assistant at the University of Münster
Publications
Conference Articles
- . . ‘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, edited by , 58-67. New York, NY: ACM. doi: 10.1145/3026937.3026942.
Articles in Edited Books
- . . ‘Skeleton Programming for Portable Many-Core Computing.’ In Programming Multicore and Many-core Computing Systems, edited by , 121-142. Wiley.
- . . ‘Multi-Stage Programming for GPUs in Modern C++ using PACXX.’ Contributed to the The 9th Annual Workshop on General Purpose Processing Using Graphics Processing Unit, GPGPU '16, Barcelona, Spain. doi: 10.1145/2884045.2884049.
- . . Improving Programmability and Performance Portability on Many-Core Processors Doctoral Thesis, University of Münster.
Articles in Journals
- . . ‘gCUP: Rapid GPU-based HIV-1 Coreceptor Usage Prediction for Next-Generation Sequencing.’ Bioinformatics 30, No. 22: 3272-3273. doi: 10.1093/bioinformatics/btu535.
- . . ‘Introducing and Implementing the Allpairs Skeleton for Programming Multi-GPU Systems.’ International Journal of Parallel Programming 42, No. 4: 601-618. doi: 10.1007/s10766-013-0265-6.
- . . ‘SkelCL: a high-level extension of OpenCL for multi-GPU systems.’ The Journal of Supercomputing 69, No. 1: 25-33. doi: 10.1007/s11227-014-1213-y.
- . . ‘High-Level Programming of Stencil Computations on Multi-GPU Systems using the SkelCL Library.’ Parallel Processing Letters 24, No. 03: 1441005. doi: 10.1142/S0129626414410059.
Conference Articles
- . . ‘Extending the SkelCL Skeleton Library for Stencil Computations on Multi-GPU Systems.’ In Proceedings of the 1st International Workshop on High-Performance Stencil Computations, edited by , 15-21. Vienna, Austria.
- . . ‘A Composable Array Function Interface for Heterogeneous Computing in Java.’ In Proceedings of ACM SIGPLAN International Workshop on Libraries, Languages, and Compilers for Array Programming, 44-49. New York, NY, USA: ACM. doi: 10.1145/2627373.2627381.
- . . ‘Towards High-Level Programming for Systems with Many Cores.’ In Perspectives of Systems Informatics - 9th International Andrei Ershov Memorial Conference, PSI 2014, edited by .: Springer.
Articles in Journals
- . . ‘dOpenCL: Towards uniform programming of distributed heterogeneous multi-/many-core systems.’ Journal of Parallel and Distributed Computing 73, No. 12: 1639-1648. doi: 10.1016/j.jpdc.2013.07.021.
- . . ‘High-Level Programming for Medical Imaging on Multi-GPU Systems using the SkelCL Library.’ Procedia Computer Science 18: 749-758. doi: 10.1016/j.procs.2013.05.239.
Conference Articles
- . . ‘SkelCL: Enhancing OpenCL for High-Level Programming of Multi-GPU Systems.’ In Parallel Computing Technologies - 12th International Conference (PaCT 2013), edited by , 258-272.: Springer. doi: 10.1007/978-3-642-39958-9_24.
Articles in Edited Books
- . . ‘Uniform High-Level Programming of Many-Core and Multi-GPU Systems.’ In Transition of HPC Towards Exascale Computing, edited by , 159-176. IOS Press. doi: 10.3233/978-1-61499-324-7-159.
Conference Articles
- . . ‘dOpenCL: Towards a uniform programming approach for distributed heterogeneous multi-/many-core systems.’ In Proceedings of the 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops, IPDPSW 2012, 174-186.: IEEE Computer Society. doi: 10.1109/IPDPSW.2012.16.
- . . ‘Using the SkelCL Library for High-Level GPU Programming of 2D Applications.’ In Euro-Par 2012: Parallel Processing Workshops - BDMC, CGWS, HeteroPar, HiBB, OMHI, Paraphrase, PROPER, Resilience, UCHPC, VHPC, Rhodes Islands, Greece, August 27-31, 2012. Revised Selected Papers, edited by , 370-380. Rhodes Islands, Greece: Springer. doi: 10.1007/978-3-642-36949-0_41.
- . . ‘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, edited by , 430-441.: IOS Press. doi: 10.3233/978-1-61499-125-0-430.
- . . ‘Towards High-Level Programming of Multi-GPU Systems Using the SkelCL Library.’ In Proceedings of the 2012 IEEE 26th International Parallel and Distributed Processing Symposium Workshops, IPDPSW 2012, 1858-1865.: IEEE Computer Society. doi: 10.1109/IPDPSW.2012.229.
Articles in Edited Books
- . . ‘Skeleton Programming for Portable Many-Core Computing.’ In Programming Multi-core and Many-core Computing Systems, edited by , 1-21. Wiley-Blackwell.
- . . ‘SkelCL - A Portable Skeleton Library for High-Level GPU Programming.’ In 2011 IEEE International Symposium on Parallel and Distributed Processing Workshops and Phd Forum (IPDPSW), 1176-1182.: IEEE. doi: 10.1109/IPDPS.2011.269.
- . . SkelCL - A Portable Multi-GPU Skeleton Library. Münster: University Münster.
Doctoral Thesis
Improving Programmability and Performance Portability on Many-Core Processors
- Supervisor
- Prof. Dr. Sergei Gorlatch
Computer processors have radically changed in the recent 20 years with multi- and many-core architectures emerging to address the in- creasing demand for performance and energy efficiency. Multi-core CPUs and Graphics Processing Units (GPUs) are currently widely programmed with low-level, ad-hoc, and unstructured programming models, like multi-threading or OpenCL/CUDA. Developing functionally correct applications using these approaches is challenging as they do not shield programmers from complex issues of parallelism, like deadlocks or non-determinism. Developing optimized parallel programs is an even more demanding task – even for experienced programmers. Optimizations are often applied ad-hoc and exploit specific hardware features making them non-portable.
In this thesis we address these two challenges of programmability and performance portability for modern parallel processors.
In the first part of the thesis, we present the SkelCL programming model which addresses the programmability challenge. SkelCL introduces three main high-level features which simplify GPU programming:
1) parallel container data types simplify the data management in GPU systems;
2) regular patterns of parallel programming (a. k. a., algorithmic skeletons) simplify the programming by expressing parallel computation in a structured way;
3) data distributions simplify the programming of multi-GPU systems by automatically managing data across all the GPUs in the system.
We present a C++ library im- plementation of our programming model and we demonstrate in an experimental evaluation that SkelCL greatly simplifies GPU programming without sacrificing performance.
In the second part of the thesis, we present a novel compilation technique which addresses the performance portability challenge. We introduce a novel set of high-level and low-level parallel patterns along with a set of rewrite rules which systematically express high-level algorithmic implementation choices as well as low-level, hardware- specific optimizations. By applying the rewrite rules pattern-based programs are transformed from a single portable high-level representation into hardware-specific low-level expressions from which efficient OpenCL code is generated. We formally prove the soundness of our approach by showing that the rewrite rules do not change the program semantics. Furthermore, we experimentally confirm that our novel compilation technique can transform a single portable expression into highly efficient code for three different parallel processors, thus, providing performance portability.Teaching
- Projektseminar: Capstone Project: Design and Implementation of a High-Level API for Programming Heterogeneous Clusters [100222]
(in cooperation with Prof. Dr. Sergei Gorlatch)
- Projektseminar: Capstone Project: High-Level Programming of Online Games in Future Generation Networks [100277]
(in cooperation with Prof. Dr. Sergei Gorlatch) - Seminar: Seminar High-Level Programming of Parallel and Distributed Computer Systems [100262]
(in cooperation with Prof. Dr. Sergei Gorlatch)
- Vorlesung/Praktikum: Introduction to C/C++ [104283]
- V/Ü: Multi-core and GPU: Parallel Programming [104279]
(in cooperation with Prof. Dr. Sergei Gorlatch)
- Seminar: Seminar Heterogeneous Parallel Systems [103839]
(in cooperation with Prof. Dr. Sergei Gorlatch) - V/Ü: Operating Systems [103810]
(in cooperation with Prof. Dr. Sergei Gorlatch)
- Projektseminar: Capstone Project: High-Level Programming of Heterogeneous Parallel Systems [102274]
(in cooperation with Prof. Dr. Sergei Gorlatch) - V/Ü: Multi-core and GPU: Parallel Programming [102289]
(in cooperation with Prof. Dr. Sergei Gorlatch)
- Seminar: Technical Aspects of Cloud Computing [102056]
(in cooperation with Prof. Dr. Sergei Gorlatch, Dominique Meiländer) - V/Ü: Operating Systems [102018]
(in cooperation with Prof. Dr. Sergei Gorlatch)
- Projektseminar: Capstone Project: Internet and GPU based Cloud Computing [102454]
(in cooperation with Prof. Dr. Sergei Gorlatch, Dominique Meiländer) - V/Ü: Multi-core and GPU: Parallel Programming [102435]
(in cooperation with Prof. Dr. Sergei Gorlatch)
- Projektseminar: Capstone Project: Design and Implementation of a High-Level API for Programming Heterogeneous Clusters [100222]
Supervised Theses
Summer Semester 2014
- Bachelor Thesis: Evaluation of the Skeleton Library FastFlow
- Bachelor Thesis: A parallel Implementation of the T-CUP Software with the SkelCL Library
Winter Semester 2013/14
- Master Thesis: Development of a Divide & Conquer Skeleton for SkelCL
- Master Thesis: A GPU-based Classification Framework for HIV-Resistance Prediction
- Master Thesis: Extending the SkelCL Library with a Skeleton for Stencil Computations
- Bachelor Thesis: Autotuning of the Work-Group Size of OpenCL Programs
Summer Semester 2013
- Master Thesis: A Model for Predicting Work Distribution in Heterogeneous Systems and its Implementation in the SkelCL Library
- Bachelor Thesis: Implementation of the Needleman-Wunsch Algorithem and the Breath-First-Search with the SkelCL-Library
- Bachelor Thesis: Evaluation of the Skeleton Library SkePU
Winter Semester 2012/13
- Master Thesis: Extending the Skeleton Library SkelCL with a Skeleton for All-Pairs Computations
- Bachelor Thesis: Implementing the LU-Decomposition and the Mersenne-Twister with the SkelCL Library
- Bachelor Thesis: Performance Analysis of SkelCL using B+-Tree Traversal and 3D Jacobi Stencil
- Diploma Thesis: Simulation and Analysis of Twodimensional Turbulences on Parallel Computerarchitectures
Summer Semester 2012
- Diploma Thesis: Extending the SkelCL Library with Multidimensional Data Types
Summer Semester 2011
- Bachelor Thesis: Analyse the Usage of GPUs for Implementing Radixsort
- Bachelor Thesis: Extending the SkelCL Library with Iterators
- Bachelor Thesis: Improving the MapOverlap Skeleton in SkelCL
- Bachelor Thesis: Development of a Library for Manipulating Source Code of C-based Languages