The Luxembourg SuperComputing Competence Center will host a half-day online course introducing OpenMP programming for multicore shared memory systems. The course will be divided into two parts: the first will cover theoretical concepts, while the second will focus on practical, hands-on challenges using the MeluXina supercomputer.
For whom?
Both current and prospective users of large hybrid CPU/GPU clusters and supercomputers, who may develop or parallelize their scientific computing applications using multicore CPUs, are encouraged to participate!
What will you learn and how?
Participants in this course will learn multicore (shared memory) CPU programming using the OpenMP programming model, covering concepts such as parallel regions, environment routines, and data sharing. They will also gain an understanding of multicore shared memory architecture and how parallel thread blocks are utilized to parallelize computational tasks. Given the focus on multicores and parallel threads, the course will provide an in-depth study of proper parallel work-sharing and synchronization of parallel calls.
Additionally, participants will learn how to apply the OpenMP programming model to accelerate linear algebra routines and iterative solvers on multicore CPUs. The course will begin with theoretical foundations, followed by a hands-on tutorial where participants will implement the OpenMP programming model under the guidance of mentors.
Learning outcomes
After completing this course, participants will be able to:
Understand the shared memory architecture, including:
- Unified Memory Access (UMA) and Non-Uniform Memory Access (NUMA)
- Hybrid distributed shared memory architecture
Implement the OpenMP programming model, including:
- Parallel regions
- Environment routines
- Data sharing
Efficient handle OpenMP constructs, such as:
- Work-sharing
- Synchronization constructs
-Single Instruction Multiple Data (SIMD) directives
Apply OpenMP programming knowledge to parallelize examples from science and engineering, including:
- Iterative solvers from scientific and engineering problems
- Vector multiplication, vector addition, and other operations
Prerequisites
Priority will be given to participants with solid experience in C/C++ and/or FORTRAN. However, no prior experience in parallel programming is required.
GPU Compute Resource
Participants attending the event will be given access to the MeluXina supercomputer during the session. For more information about MeluXina, please refer to the Meluxina overview and the MeluXina – Getting Started Guide.
Agenda
This half-day course will be hosted online in Central European Time (CET). All communication will be conducted via Zoom, Slack, and email.
October 29, 2024: 11:00 AM – 05:00 PM
11:00 AM - 12:00 PM: Cluster Dry Run (Optional, for anyone who would like to test the cluster - MeluXina)
12:00 PM - 01:00 PM: Lunch Break
01:00 PM – 01:45 PM: Lecture Part 1
01:45 PM – 02:00 PM: Break
02:00 PM – 02:45 PM: Lecture Part 2
02:45 PM – 03:00 PM: Break
03:00 PM – 04:45 PM: Hands-on lab
04:45 PM – 05:00 PM: Q & A
Important: Limited spots available!
Contact person for more information:
Ezhilmathi KRISHNASAMY, ezhilmathi.krishnasamy[at]uni.lu