-
Forschungsschwerpunkte
- Algorithmische Skelette
- SkelCL – Eine Skelettbibliothek für heterogene Systeme
- GPU Programmierung
- Parallele Systeme
Dr. Michel Steuwer
Institut für InformatikVita
Akademische Ausbildung
- -
- Promotionsstudium Informatik
- -
- Studiengang Diplom-Informatik
Beruflicher Werdegang
- seit
- Wissenschaftlicher Mitarbeiter an der Universität Edinburgh
- -
- Forschungsaufenthalt an der Universität Edinburgh
- -
- Wissenschaftlicher Mitarbeiter an der Universität Münster
- -
- Forschungsaufenthalt an der Universität Edinburgh
- -
- Forschungsaufenthalt an der Universität Edinburgh
- -
- Forschungsaufenthalt an der Universität Edinburgh
- -
- Studentische Hilfskraft an der Universität Münster
Publikationen
Aufsätze (Konferenz)
- . . ‘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.
Buchbeiträge (Sammel- Herausgeberbände)
- . . ‘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 Dissertation, University of Münster.
Aufsätze (Zeitschriften)
- . . ‘gCUP: Rapid GPU-based HIV-1 Coreceptor Usage Prediction for Next-Generation Sequencing.’ Bioinformatics 30, Nr. 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, Nr. 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, Nr. 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, Nr. 03: 1441005. doi: 10.1142/S0129626414410059.
Aufsätze (Konferenz)
- . . ‘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.
Aufsätze (Zeitschriften)
- . . ‘dOpenCL: Towards uniform programming of distributed heterogeneous multi-/many-core systems.’ Journal of Parallel and Distributed Computing 73, Nr. 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.
Aufsätze (Konferenz)
- . . ‘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.
Buchbeiträge (Sammel- Herausgeberbände)
- . . ‘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.
Aufsätze (Konferenz)
- . . ‘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.
Buchbeiträge (Sammel- Herausgeberbände)
- . . ‘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.
Promotion
Improving Programmability and Performance Portability on Many-Core Processors
- Betreuer
- 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.
Lehre
- Projektseminar: Design und Implementation einer High-Level API zur Programmierung heterogener Clustersysteme [100222]
(zusammen mit Prof. Dr. Sergei Gorlatch)
- Projektseminar: Projektseminar High-Level-Programmierung von Online-Spielen in Future Generation Networks [100277]
(zusammen mit Prof. Dr. Sergei Gorlatch) - Seminar: Seminar High-Level-Programmierung paralleler und verteilter Rechnersysteme [100262]
(zusammen mit Prof. Dr. Sergei Gorlatch)
- Vorlesung/Praktikum: Einführung in C/C++ [104283]
- V/Ü: Multi-core und GPU: Parallele Programmierung [104279]
(zusammen mit Prof. Dr. Sergei Gorlatch)
- Seminar: Seminar "Heterogene parallele Systeme" [103839]
(zusammen mit Prof. Dr. Sergei Gorlatch) - V/Ü: Betriebssysteme [103810]
(zusammen mit Prof. Dr. Sergei Gorlatch)
- Projektseminar: High-Level Programmierung heterogener paralleler Systeme [102274]
(zusammen mit Prof. Dr. Sergei Gorlatch) - V/Ü: Multi-core und GPU: Parallele Programmierung [102289]
(zusammen mit Prof. Dr. Sergei Gorlatch)
- Seminar: Technische Aspekte des Cloud-Computings [102056]
(zusammen mit Prof. Dr. Sergei Gorlatch, Dominique Meiländer) - V/Ü: Betriebssysteme [102018]
(zusammen mit Prof. Dr. Sergei Gorlatch)
- Projektseminar: Internet- und GPU-basiertes Cloud Computing [102454]
(zusammen mit Prof. Dr. Sergei Gorlatch, Dominique Meiländer) - V/Ü: Multi-core und GPU: Parallele Programmierung [102435]
(zusammen mit Prof. Dr. Sergei Gorlatch)
- Projektseminar: Design und Implementation einer High-Level API zur Programmierung heterogener Clustersysteme [100222]
Betreute Abschlussarbeiten
Sommersemester 2014
- Bachelorarbeit: Evaluation der Skelettbibliothek FastFlow
- Bachelorarbeit: Eine parallele Implementierung der T-CUP Software mithilfe der SkelCL-Bibliothek
Wintersemester 2013/14
- Masterarbeit: Entwicklung eines Divide & Conquer Skelettes für SkelCL
- Masterarbeit: Ein GPU-basiertes Klassifikations-Framework zur HIV Resistenzvorhersage
- Masterarbeit: Erweiterung der SkelCL-Bibliothek mit einem Skelett für Stencil Berechnungen
- Bachelorarbeit: Autotuning der Workgroup-Size von OpenCL-Programmen
Sommersemester 2013
- Masterarbeit: Entwicklung eines Modells zur Vorhersage von Arbeitsverteilung in heterogenen Systemen und seine Implementierung in der SkelCL-Bibliothek
- Bachelorarbeit: Implementierung des Needleman-Wunsch Algorithmus und der Breitensuche mit der SkelCL-Bibliothek
- Bachelorarbeit: Evaluation der Skelettbibliothek SkePU
Wintersemester 2012/13
- Masterarbeit: Ergänzung der Skelett-Bibliothek SkelCL um ein Skelett für All-Pairs-Berechnungen
- Bachelorarbeit: Implementierung der LR-Zerlegung und des Mersenne-Twister mit der SkelCL-Bibliothek
- Bachelorarbeit: Performanceanalyse von SkelCL mittels B+-Baum Traversierung und 3D Jacobi Stencil
- Diplomarbeit: Simulation und Analyse zweidimensionaler Turbulenz auf parallelen Rechnerarchitekturen
Sommersemester 2012
- Diplomarbeit: Erweiterung der SkelCL-Bibliothek um mehrdimensionale Datentypen
Sommersemester 2011
- Bachelorarbeit: Unsersuchung des Einsatzes von Grafikkarten für den Radixsort
- Bachelorarbeit: Eine Erweiterung der SkelCL-Bibliothek für GPUs mit Iteratoren
- Bachelorarbeit: Verbesserung des MapOverlap Skelettes in SkelCL
- Bachelorarbeit: Entwicklung einer Bibliothek zur Manipulation und Interpretation von Quellcode der Sprachen der C-Familie