20-00-0419-iv Programming Massively Parallel Processors

Course offering details

Instructors: Dr. rer. nat. Stefan Guthe

Event type: Integrated Course

Org-unit: Dept. 20 - Computer Science

Displayed in timetable as: PMPP

Subject:

Crediting for:

Hours per week: 4

Credits: 6,0

Language of instruction: Englisch

Min. | Max. participants: - | -

Course Contents:
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.

Literature:


  • David Kirk, Wen-mei Hwu:
    Programming Massively Parallel Processors: A Hands-on Approach, Morgan Kaufmann
  • 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
    - NVIDIA GPU Computing Developer Home Page
    - NVIDIA CUDA Documents
  • 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 (web site)

Additional Literature will be announced during the lecture.

Preconditions:


  • solid programming experience in C/C++
  • basic algorithms and data structures

Official 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.

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.

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.

Literature
Appointments
Date From To Room Instructors
1 Mon, 14. Oct. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
2 Tue, 15. Oct. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
3 Mon, 21. Oct. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
4 Tue, 22. Oct. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
5 Mon, 28. Oct. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
6 Tue, 29. Oct. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
7 Mon, 4. Nov. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
8 Tue, 5. Nov. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
9 Mon, 11. Nov. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
10 Tue, 12. Nov. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
11 Mon, 18. Nov. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
12 Tue, 19. Nov. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
13 Mon, 25. Nov. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
14 Tue, 26. Nov. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
15 Mon, 2. Dec. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
16 Tue, 3. Dec. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
17 Mon, 9. Dec. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
18 Tue, 10. Dec. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
19 Mon, 16. Dec. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
20 Tue, 17. Dec. 2019 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
21 Mon, 13. Jan. 2020 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
22 Tue, 14. Jan. 2020 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
23 Mon, 20. Jan. 2020 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
24 Tue, 21. Jan. 2020 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
25 Mon, 27. Jan. 2020 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
26 Tue, 28. Jan. 2020 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
27 Mon, 3. Feb. 2020 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
28 Tue, 4. Feb. 2020 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
29 Mon, 10. Feb. 2020 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
30 Tue, 11. Feb. 2020 11:40 13:20 S305 | 074 Dr. rer. nat. Stefan Guthe
Class session overview
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
Instructors
Dr. rer. nat. Stefan Guthe