Parallel Programming - FS '15

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 (e.g., GPUs) 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:

Basic parallel programming concepts

Parallel programming using Java

Synchronization techniques

Emerging parallel programming models (e.g., GPUs)

Case studies of building parallel programs starting from sequential algorithms

Exams and Grading

Class is part of Basisprüfung. There is a written, centralized exam after the end of the semester.

80% of grade made-up from written exam

20% of grade made-up from one Midterm exam

Exercise sessions are not graded, however they are considered essential!

Midterm Exam

There will be one midterm on the 31.03.15. The midterm is during the lecture hours (10:15 − 12:00) and closed book. No additional material is allowed.
The midterm will take place in three different rooms, please come directly to the correct room according to your last name.

HG E7: Lastname starting with A - H

HG F3: Lastname starting with I - P

ETF E1: Lastname starting with R - Z

Midterm Material

Relevant for the midterm are exercises 1 to (and including) 6 and the lectures from 16.02.2015 to (and including) 23.03.2015.