Programming Massively Parallel Processors (PMPP)
Integrierte Lehrveranstaltung, Summer Semester 2009
This course covers the foundations of programming massively parallel processors. It is focused on the architecture of modern graphics hardware and its use for non-graphics applications. This year's course will be tought as "Integrierte Lehrveranstaltung" (integrated event, see details below). The course will be taught in English.
Course Description
Graphic cards have traditionally been used (or misused) for applications besides rendering. Applications could benefit from the massive compute power and the special purpose hardware available on the graphics cards. This required, however, mapping the algorithm on the individual stages of the rendering pipeline in an often tedious process. Recent architectural changes remove many of these restrictions. Newly available programming tools allow for high-level, straightforward programming of these systems. In general, massively parallel processors will play a more and more important role in future.
This course will consist of two main components:
- A theoretical and practical introduction into the topic of programming massively parallel processors (e.g., including algorithms, architectural aspects).
- The exercises will be practical programming exercises and a final project based on NVIDIAs CUDA framework. Topics for the final project will be proposed and co-advised by researchers from different fields. Final projects will be group projects, typically with 2 students per group.
Note that this course is an "Integrierte Lehrveranstaltung" which does not have distinct slots for lectures and exercises. During the first part of the semester, we will typically teach two lectures per week whereas the focus will later shift towards project work. Note that the projects are an integral part of the course. It is not possible to get credit for the course without completing a project.
Lecturer: Prof. Dr.-Ing. Michael Goesele
Teaching Assistant: Jens Ackermann, Ronny Klowsky
Tutors: Paul Baecher, Thorsten Franzel (firstname.lastname@gris.informatik.tu-darmstadt.de)
More information can be found in the course's Module-Guide listing and the corresponding forum. Please note that we plan to introduce several changes compared to the 2008 edition of the course.
Registration for the course using the department's webreg system (direct link to the PMPP registration) is now closed. Please contact us if you still need to be registered.
Time and Location
Monday 11.40 – 13.20 in Room 074 in the Fraunhofer IGD building (S3|05, directions)
Tuesday 9.50 – 11.30 in Room 074 in the Fraunhofer IGD building (S3|05, directions)
Student projects
As an integrated course, students will have the possibility to choose among different projects. Topics will come from computational engineering, computer vision, bioinformatics, etc. to show the diversity of problems that can be tackled by massively parallel approaches. Each project will have two supervisors, one from the specific field and one for CUDA related questions. The goal is to learn massively parallel programming not from toy examples but from real problems.
Schedule
| Date | Lecture | Exercises | Reading |
14.4.2009 |
Introduction (PDF) | --- |
Berkeley Report, Chapter 1-3 (web site, local copy) |
20.4.2009 |
CUDA Programming Model 1 (PDF) | --- |
CUDA Programming Guide V2.1, Chapters 1-3 (web site, local copy) |
21.4.2009 |
CUDA Programming Model 2 (PDF) | Exercise 0 | CUDA Programming Guide V2.1, Chapters 5+6 (web site, local copy) |
27.4.2009 |
CUDA Performance Features (PDF) | --- |
|
28.4.2009 |
Design Patterns (PDF) | Exercise 1 | Patterns for Parallel Programming, Chapter 3 |
4.5.2009 |
Introduction of Final Projects (project list) | Select projects | |
5.5.2009 |
Exercises/Discussion/Final Projects | --- |
|
11.5.2009 |
Assignment Final Projects, Parallel Basics (PDF) | --- |
Patterns for Parallel Programming, Intro, Chapters 1+2 |
12.5.2009 |
Exercises/Discussion/Final Projects | --- |
|
18.5.2009 |
Design Patterns 2 (PDF) | --- |
Patterns for Parallel Programming, Intro, Chapters 4-6 |
19.5.2009 |
Exercises/Discussion/Final Projects, Subversion access | --- |
|
25.5.2009 |
Student Presentation: Final Projects (1) | --- |
|
26.5.2009 |
Student Presentation: Final Projects (2) | --- |
|
1.6.2009 |
Holiday - No Lecture | --- |
|
2.6.2009 |
Parallel Algorithms 1 (PDF) | --- |
Parallel Reduction Presentation from SDK (local copy) |
8.6.2009 |
Lecture canceled | --- |
|
9.6.2009 |
Exercises/Discussion/Final Projects | --- |
|
15.6.2009 |
Parallel Algorithms 2 (PDF) | Exercise 2 | Scan Whitepaper from SDK (local copy) |
16.6.2009 |
Exercises/Discussion/Final Projects |
--- |
|
22.6.2009 |
Student Presentations (10 min. per project) | --- |
|
23.6.2009 |
Exercises/Discussion/Final Projects | --- |
|
29.6.2009 |
Guest Lecture by
Robert Strzodka Scientific Computing on Multi-GPU Systems (PDF) (more information) |
--- |
|
30.6.2009 |
Exercises/Discussion/Final Projects | --- |
|
6.7.2009 |
Lecture | --- |
|
7.7.2009 |
Exercises/Discussion/Final Projects | --- |
|
13.7.2009 |
Final Presentations | --- |
|
14.7.2009 |
Final Presentations | --- |
Note: You will need username and password to access the slides and files above. Username and password will be announced in the first class meeting. Please contact Michael Goesele or Jens Ackermann if you participate in the lecture but do not have the access information.
Office Hours
By appointment. Please contact me via email or contact my secretary Carola Eichel.
Prerequisites
- solid programming experience in C/C++
- basic algorithms and data structures
Literature and Web References
- Hubert Nguyen:
GPU Gems 3, Addison Wesley - T. Mattson, B. Sanders, B. Massingill:
Patterns for Parallel Programming, Addison Wesley - gpgpu.org - General-Purpose Computation Using Graphics Hardware
- NVIDIA CUDA page
- Krste Asanovic, Ras Bodik, Bryan Christopher Catanzaro, Joseph James Gebis, Parry Husbands, Kurt Keutzer, David A. Patterson, William Lester Plishker, John Shalf, Samuel Webb Williams and Katherine A. Yelick:
The Landscape of Parallel Computing Research: A View from Berkeley, Technical Report No. UCB/EECS-2006-183, University of California at Berkeley - ...
