Annotation
With the increasing prevalence of multi-core processors, shared-memory programming models are essential. OpenMP is a popular, portable, widely supported, and easy-to-use shared-memory model. The course will improve users' understanding of OpenMP and its new features, to make the best use of this standard on modern computer architectures. The workshop will cover optimizations for NUMA architectures, SIMD, and accelerator programming in OpenMP. Several of the topics, tools, and/or hands-on exercises will be presented that support users in their programs' performance and correctness analysis.
Level
1st day beginner
2nd day advanced
Language
English
Prerequisites
Participants are supposed to understand basic parallelization concepts. Slides will contain the C/C++ and FORTRAN syntax, except for some. Exercises will be available in C/C++ and FORTRAN. If you wish to attend only the second day you should be familiar with the fundamentals of OpenMP covered on the first day.
Agenda
Day 1
9:00 - 10:30 Introduction:
- Welcome
- Overview of OpenMP
- Parallel Region
- Worksharing
- Scoping
10:30 - 10:45 Coffee Break
10:45 - 12:15 Tasking/1:
- Motivation
- Task Model
- Scoping with Tasks
12:15 - 13:15 Lunch Break
13:15 - 14:45 Tasking/2:
- Cut-off Strategy
- Taskloop
- Task Dependencies
14:45 - 15:00 Coffee Break
15:00 - 16:30 Hands-on Part 1
DAY 2
9:00 - 10:30 SIMD & GPU Programming/1:
- SIMD Microarchitectures
- OpenMP SIMD
- OpenMP Target Device Model
- Expressing Parallelism
10:30 - 10:45 Coffee Break
10:45 - 12:15 GPU Programming/2:
- Device Data Environment
- Asynchronous Offloading
- GPU Performance Tuning
12:15 - 13:15 Lunch Break
13:15 - 14:45 Misc. OpenMP Features:
- User-defined reductions
- Do across loops
- Cancellation
14:45 - 15:00 Coffee Break
15:00 - 16:30 Hands-on Part 2
About the tutors
Dr. Christian Terboven is a senior scientist and leads the HPC group at RWTH Aachen University. His research interests center around Parallel Programming and related Software Engineering aspects. Christian has been involved in the Analysis, Tuning, and Parallelization of several large-scale simulation codes for various architectures. He is responsible for several research projects in the area of programming models and approaches to improve the productivity and efficiency of modern HPC systems. In the context of OpenMP, Christian is the co-lead of the Affinity Subcommittee within the OpenMP Language Committee, and he is co-author of the book "Using OpenMP - The Next Step", published by MIT Press.
Dr. Michael Klemm is a Principal Member of Technical Staff in the HPC Center of Excellence at AMD. His focus is on High Performance and Throughput Computing on AMD EPYC Processors and AMD InstinctAccelerators. He holds an M.Sc. in Computer Science and a Doctor of Engineering degree (Dr.-Ing.) in Computer Science from the Friedrich-Alexander-University Erlangen-Nuremberg, Germany. Michael's research focus is on compilers and runtime optimizations for distributed systems. His areas of interest include compiler construction, design of programming languages, parallel programming, and performance analysis and tuning. In 2016, Michael was appointed Chief Executive Officer of the OpenMP Architecture Review Board.
Acknowledgments
This event was partially supported by The Ministry of Education, Youth and Sports from the Large Infrastructures for Research, Experimental Development and Innovations project "e-Infrastruktura CZ – LM2018140“ and partially by the PRACE-6IP project - the European Union’s Horizon 2020 research and innovation programme under grant agreement No. 823767.
This course is supported by the Ministry of Education, Youth and Sports of the Czech Republic through the e-INFRA CZ (ID:90140).