This practical course is comprised of two parts: firstly, a crash course on the basics of High-Performance Computing is delivered during a one-week tutorial. In hands-on experience, it covers the theoretical knowledge regarding parallel computing, high-performance computing, supercomputers, and the development and performance analysis of parallel applications. Practical demonstrations encourage you to utilize the GWDG cluster system to execute existing parallel applications, to start developing your own parallel application using MPI and OpenMP, and to analyze the performance of these applications to ensure they run efficiently. During this week, we will use group works and small exercises to foster the training. We will start forming a learning community that will blend into the second part of the course.

Equipped with this experience, in the second part, you will team up in groups of two and parallelize a non-trivial problem of your choice. Firstly, you will decide upon a problem you like to solve, then you create a sequential solution to this problem, and lastly, you apply the experience of the block course to parallelize and analyze the scalability of the application. The results will be shared with the peers in a presentation at the end of the term, and documented in a report - these components will be assessed and marked.

If you are just interested to learn about parallel programming and don’t need credits, you can join only the first part of the course and gain a certificate.

This course is suitable for Bachelor and Master students and also the block seminar is suitable for GWDG academy participants. We aim to form suitable learning groups for all attendees.

Key Information

| —|— Contact | Julian Kunkel Venue | virtual (possibly hybrid) Time (Course) | Mon, April 25th 2022 - Fri, April 29th 2022 Time (Final) | tbd Language | English Module | M.Inf.1829: Praktikum High-Performance Computing,B.Inf.1835.Mp: Fachpraktikum Data Science II (klein), B.Inf.1834.Mp: Fachpraktikum Data Science I (klein) , B.Inf.1833.Mp: Fachpraktikum Data Science, B.Inf.1805.Mp: Fachpraktikum III, B.Inf.1804.Mp: Fachpraktikum II, B.Inf.1803.Mp: Fachpraktikum I SWS | 6 ECTS | 9 presence time | 84 hrs independent study | 186 hrs

Learning Objectives

The students will be able to

  • Construct parallel processing schemes from sequential code using MPI and OpenMP
  • Justify performance expectations for code snippets
  • Sketch a typical cluster system and the execution of an application
  • Characterize the scalability of a parallel application based on observed performance numbers
  • Analyze the performance of a parallel application using performance analysis tools
  • Describe the development and executions models of MPI and OpenMP
  • Construct small parallel applications that demonstrate features of parallel applications
  • Demonstrate the usage of an HPC system to load existing software packages and to execute parallel applications and workflows
  • Demonstrate the application of software engineering concepts


Presentation 15 min (per group member) and report (max 15 pages per group member). The mark consists of 30% presentation and 70% report.


Block Seminar

This part is attended by BSc/MSc students and GWDG academy participants


09:00 Welcome, organization of the workshop 18:00 Farewell


  • 2h Performance Analysis with LIKWID (Jack Ogaja)




  • Description of the group assignment

Topics to be included in the agenda

  • Parallel programming with MPI
  • Parallel programming with OpenMP
  • Using SLURM to run applications on the cluster
  • Parallelization with Python (Hendrik Nolte)
  • Managing Software using Spack
  • Performance analysis tools
  • Performance modeling
  • Debugging parallel code using GDB

Project Meetings

This part is mandatory for BSc and MSc students to obtain the credits.


The deadline for registration is April 10th. Students, please register using StudIP. GWDG Academy participants, please register there.

Project Topics

This is a list of topics for the individual projects. We encourage you to propose your own topic. You will have some room for developing the topic in the direction of your choice.


Portrait von Julian Kunkel Prof. Dr.Julian Kunkel


%!s(<nil>) %!s(<nil>)