Overview
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:
Announcements
- 13.02.2014
- Course Website for Spring 2014 online.
- 23.02.2014
- Students to groups assignment is now online.
- 23.02.2014
- Exercise 1 is now online.
- 02.03.2014
- Exercise 2 is now online.
- 09.03.2014
- Exercise 3 is now online.
- 10.03.2014
- Information about mid-term exams is now available.
- 11.03.2014
- Additional information about mid-term exams is now available.
- 17.03.2014
- Exercise 4 is now online.
- 21.03.2014
- Exercise 5 is now online.
- 31.03.2014
- Exercise 6 is now online. Notice the deadline extension.
- 01.04.2014
- The grades of the first mid-term are now available.
- 14.04.2014
- Exercise 7 is now online. Notice the deadline extension.
- 28.04.2014
- Additional information about the second mid-term exam is now available.
- 28.04.2014
- Exercise 8 is now online.
- 06.05.2014
- Exercise 9 is now online.
- 14.05.2014
- Exercise 10 is now online.
- 21.05.2014
- The grades of the second mid-term are now available.
- 28.05.2014
- A correction of "OpenCL Case Studies (Annotated version)" is now online.
Course Content
Main text and reference book
Related resources, text and reference books
Introduction to Java books (freely available)
OpenCL
Schedule
Wk. | Date | Content | Slides |
---|---|---|---|
1 | 17.02.2014 | Course Introduction |
Slides1 Slides1(annotated) Slides2 |
1 | 18.02.2014 | Parallel Architectures |
Slides Handout |
2 | 24.02.2014 | Basic Concepts |
Slides Handout |
2 | 25.02.2014 | Parallel Models |
Slides Handout |
3 | 03.03.2014 | Introduction to Programming |
Slides Slides(annotated) Handout |
3 | 04.03.2014 | Java Basics |
Slides Slides(annotated) Handout |
4 | 10.03.2014 | Java Loops / Objects / Classes |
Slides Handout |
4 | 11.03.2014 | Threads |
Slides (annotated) Handout |
5 | 17.03.2014 | Synchronization: Introduction to locks |
Slides Handout |
5 | 18.03.2014 | Synchronization: Using locks and building thread-safe classes |
Slides Handout |
6 | 24.03.2014 | (previous lecture continued) |
|
6 | 25.03.2014 | midterm exam, no lecture |
|
7 | 31.03.2014 | Synchronization: Beyond locks |
Slides (v0.2) Handout (v0.2) |
7 | 1.04.2014 | Synchronization: Advanced (and other) topics |
Slides (v0.2) Handout (v0.2) |
8 | 7.04.2014 | Task Parallelism |
Slides Handout |
8 | 8.04.2014 | Transactional Memory |
Slides Handout |
9 | 14.04.2014 | Designing Parallel Algorithms |
Slides (annotated) Handout |
9 | 15.04.2014 | GUIs MVC |
Slides Handout |
10 | 28.04.2014 | Concurrent message passing |
Slides Handout |
10 | 29.04.2014 | Data parallel programming |
Slides Handout |
11 | 12.05.2014 | Intro to Massively Parallel Programming |
Slides Handout (annotated) |
11 | 13.05.2014 | OpenCL |
Slides Handout (annotated) |
12 | 20.05.2014 | Guest Talk |
Talk will be at 11:00-12:00 |
12 | 21.05.2014 | OpenCL Memory Model |
Slides Handout (annotated) |
13 | 26.05.2014 | OpenCL Case Studies |
Slides Handout (annotated) |
13 | 27.05.2014 | Recap / Q & A Session |
Slides Handout |
Exercises
The assignment of teaching assistants to rooms and time slots can be found here. The assignment of students to teaching assistants can be found here.
Exercise | Assignment | Due date |
---|---|---|
Exercise 1 | Handout Bakery Simulator Slides Solution | 03.03.2014 |
Exercise 2 | Handout Slides Solution | 10.03.2014 |
Exercise 3 | Handout Assignment3.zip Slides Solution Solution | 17.03.2014 |
Exercise 4 | Handout Assignment4.zip Slides Solution Solution | 26.03.2014 |
Exercise 5 | Handout Assignment5.zip Slides Solution Solution | 31.03.2014 |
Exercise 6 | Handout Assignment6.zip Slides Solution Solution | 14.04.2014 |
Exercise 7 | Handout Assignment7.zip Slides Solution | 28.04.2014 |
Exercise 8 | Handout Assignment8.zip Solution | 07.05.2014 |
Exercise 9 | Handout Assignment9.zip Slides Solution Solution | 12.05.2014 |
Exercise 10 | Handout Assignment10.zip [Fixed for Mac OS] Solution | 21.05.2014 |
Exercise 11 | Handout Assignment11.zip Solution | 31.05.2014 |
Exams and Grading
Class is part of Basisprüfung. There is a written, centralized exam after the end of the semester.
Exercise sessions are not graded, however they are considered essential!
Midterm Exams
There will be two midterms on the 25.03.14 and 06.05.14. The midterms are during the lecture hours and are closed book. No additional material is allowed.
First Midterm
The first midterm on Tuesday, 25.03.14. This will be happening in three rooms:
Topics include everything in the lecture up to and including week 5.
Topics from the Exercise include everything up-to and including exercise 4.
The grades are available here.
Second Midterm
The second midterm on Tuesday, 06.05.14. This will be happening in three rooms:
Topics include everything in the lecture from and including week 5, up-to and including week 10.
Topics from the Exercise include everything from and including exercise 5, up-to and including exercise 8.
More specifically, you should study solutions for exercises 5-7 and just have a look at assignment 8.
The grades are available here.
You can review the exam this Friday, 23.05.2014 from 10:00 to 14:00 in room CNB H 100.5.Final Exam (Basisprüfung)
The final exam takes place on Saturday, 09.08.14 from 11:00 until 13:00 (120 minutes).
This will be held in a single room for everyone: HIL G 41
(building map)
(floor plan)
Topics include everything covered in the lectures (see annotated slides) and all the exercise material. The only written aids allowed are 4 sides (2 A4 pages) of handwritten notes. You may not use your books, additional notes, or any calculator on this exam.