29/10/2024

MeluXina: Introduction to OpenMP programming

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: 01:00 PM – 05:00 PM 

 

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 



29/10/2024