The purpose of this course is to introduce students to parallel programming. By the end of the course students will be able to design and implement working parallel programs in traditional (e.g., Java Threads) and emerging parallel programming models. Moreover, students will master fundamental concepts in parallelism and be able to reason about the correctness, performance, and the construction of parallel programs using different parallel programming paradigms (e.g., task parallelism, data parallelism) and mechanisms (e.g., threads, tasks, locks, communication channels). Finally, the course will examine how parallel programming methodologies can be applied in different algorithmic domains by investigating parallelization of algorithms.
Topics include:
Main text and reference book
Related resources, text and reference books
Introduction to Java books (freely available)
All material is available on Moodle.
Date | Title |
---|---|
Feb 19 | Introduction & Course Overview |
Feb 20 | Java Recap and JVM Overview |
Feb 26 | Introduction to Threads and Synchronization (Part I) |
Feb 27 | Introduction to Threads and Synchronization (Part II) |
Mar 4 | Introduction to Threads and Synchronization (Part III) |
Mar 5 | Parallel Architectures: Parallelism on the Hardware Level |
Mar 11 | Basic Concepts in Parallelism |
Mar 12 | Divide & Conquer and Executor Service |
Mar 18 | DAG and ForkJoin Framework |
Mar 19 | Parallel Algorithms (Part I) |
Mar 25 | Parallel Algorithms (Part II) |
Mar 26 | Shared Memory Concurrency, Locks and Data Races |
Apr 08 | Virtual Threads |
Apr 09 | Exam Preparation (First Half) |
All material (exercise slides and exercises) is available on Moodle.
All exercises start in the first week of the semester.
Week | Title | Due Date |
---|---|---|
1 | Introduction | 26.02.2024 |
2 | Introduction to Multi-threading | 04.03.2024 |
3 | Multi-threading | 11.03.2024 |
4 | Parallel Models | 18.03.2024 |
5 | Divide and Conquer | 25.03.2024 |
6 | Task Parallelism | 08.04.2024 |
7 | Synchronization and Resource Sharing | 15.04.2024 |
There is a written, centralized exam after the end of the semester. Exercise sessions are not graded.