Table of Contents

Practical Course on High-Performance Computing

This practical course comprises of a crash course on the basics of High-Performance Computing, which is delivered during a one-week block tutorial. Including hands-on exercises, it will cover theoretical knowledge regarding parallel computing, high-performance computing, supercomputers, and the development and performance analysis of parallel applications. Practical demonstrations will encourage you to utilize the GWDG cluster system to execute existing parallel applications, start developing your own parallel application using MPI and OpenMP, and to analyze the performance of these applications to ensure they run efficiently.

On the first day of the tutorial, we will help you form groups of three to four people to work on the exercises and form a learning community.

For students, we will present on the last day of the tutorial a group assignment that you will have to solve in pairs.

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

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

Key information

Contact Julian Kunkel
Location Broadcast: https://meet.gwdg.de/b/jul-tff-dq1-rt0 Breakout: https://meet.gwdg.de/b/jul-ffv-ljs-7u5
Time Full week: Tuesday. 02.04.24 - Friday. 05.04.24 - 09:00 - 18:00, Half Day Monday. 08.04.24 - Tuesday. 09.04.24 - 14:00 - 18:00, Final presentation Monday. 16:15-17:45 starting 17.06.24
Language English
Module Modul M.Inf.1829: Praktikum High-Performance Computing (6C)
Modul B.Inf.1803: Fachpraktikum I (5C)
Modul B.Inf.1804: Fachpraktikum II (5C)
Modul B.Inf.1805: Fachpraktikum III (5C)
Modul B.Inf.1833: Fachpraktikum Data Science (9C)
Modul B.Inf.1834: Fachpraktikum Data Science I (klein) (5C)
Modul B.Inf.1835: Fachpraktikum Data Science II (klein) (5C)
SWS 6
Credits 5,6,9 (depending on the course)
Contact time up to 84 hours (63 full hours), depending on the course
Independent study up to 186 hours
Tutors Jonathan Decker, Julian Kunkel

Module description

Please note that we plan to record sessions (lectures and seminar talks) with the intent of providing the recordings via BBB to other students but also to publish and link the recordings on YouTube for future terms. If you appear in any of the recordings via voice, camera or screen share, we need your consent to publish the recordings. See also this Slide.

Learning Objectives

The students will be able to

Agenda

Block Course

The block seminar contains sessions that contain short lectures followed by hands-on exercises that teach the most relevant aspects of the concepts and tools. The hands-on typically starts with a short tutorial as a walk-through followed by guided learning based on a provided worksheet with exercises and descriptions. Participants can take breaks as necessary during guided learning.

Computer science students, please attend still your lectures, this year the easter vacations are unfortunately located such that scheduling is difficult.

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

Everyone, please prepare via the information given in this sheet Prep exercise

Tuesday 02.04.2024

Introductory day – optional for computer students

Wednesday 03.04.2024

Thursday 04.04.2024

Friday 05.04.2024

Monday 08.04.2024

Tuesday 09.04.2024

Registration

Students, please register using StudIP. GWDG Academy participants, please register there.

Relevant for Students to Obtain the Credits

This remaining part is mandatory for BSc and MSc students to obtain the credits but can be skipped if you just want to join the block course.

In order to obtain the credits, you will parallelize a non-trivial problem of your choice using the concepts and tools learned during the block course. As an alternative option, you could choose from an administrative topic that we derive from a practical problem at the GWDG.

Firstly, you will decide upon a problem you like to solve, then you will create a sequential solution to this problem, and lastly, you apply the experience of the block course to parallelize your application and analyze its scalability. You need to prepare a presentation for your fellow students as well as document your solution in a report. Both the presentation and the report are due at the end of the term and will be assessed and marked.

Examination

To obtain the credits, students must develop their (own) group project. A presentation of 20 min and report (max 15 pages per group member) must be created. The mark consists of 30% presentation and 70% report.

The report must be submitted as a PDF file. The source code must be handed in as well. Optimally as a Gitlab or Github repository.

Project Meetings

This attendance of the virtual project meetings is mandatory for BSc and MSc students to obtain the credits.

There will be three project meetings in which the groups introduce their results. These meetings are not marked but provide valuable feedback toward your project. In the first seminar, the project idea and rough implementation plan are shared. The second seminar will introduce a report and gives you the opportunity to ask questions regarding the preparation of the report. In the final meeting, the project results are shared.

Dates

Example Projects

Projects should cover either the creation and parallelization of an interesting problem such as:

Most important is the correct parallelization (possibly with alternatives) and evaluation. Detailed knowledge of numerics or a precise representation of the model is not required.

Alternatively, we provide a list of specific topics that are motivated by our needs in the data center, these may cover administrative aspects as well. We are open to further suggestions.

Examples can be found in the course from last year or here. Have a look at the results and videos generated.

Content of the Project

For a generic parallelization project, some contents should be worked on and accordingly included in the presentation and elaboration, the aspects are:

Project Topics

This is a list of topics for the individual projects that are motivated by our needs in the data center. We welcome it if you propose your own simulation, parallelization, or administrative topic. Even for our suggested topics, you will have some room for developing the topic in the direction of your choice.

Group Student Supervisor Topic
1 David Alexandre Silva Martin Paleico Wild-Fire-Simulation using C++
1 Jan Lenke Martin Paleico Wild-Fire-Simulation using C++
1 Claas Kochanke Martin Paleico Wild-Fire-Simulation using C++
2 Bashar Jaan Khan Martin Paleico Simulating multi-star systems using Python (and maybe C++)
2 Ughur Mammadzada Martin Paleico Simulating multi-star systems using Python (and maybe C++)
2 Amin Nibkhani Martin Paleico Simulating multi-star systems using Python (and maybe C++)
3 Sebastian Thurm Christian Köhler MPI for <https://github.com/N720720/lindemann>
4 Karthik Banjan Artur Wachtel Fractal Generation Algorithms in Rust
4 Hanumanth Padmanabhan Artur Wachtel Fractal Generation Algorithms in Rust
5 Frederik Hennecke Zoya Masih Parallel SAT solver in C/C++
5 Pascal Brockmann Zoya Masih Parallel SAT solver in C/C++
6 Karan Sharma Zoya Masih Parallel Ray Tracing
6 Pranay Bhatia Zoya Masih Parallel Ray Tracing
7 Sunny Jain Julian Kunkel Poker Simulation using MPI
7 Siddharth Simediya Julian Kunkel Poker Simulation using MPI