TDDD56 Multicore and GPU Programming
Timetable and Lecture Plan
Schedule (as available on the LiU schedule server)
Certain lecture notes and other handouts with restricted access
are located here.
The lecture notes and other material may be updated during the course as appropriate.
Christoph Kessler (CK), Ingemar Ragnemalm (IR).
Assistants: Nicolas Melot (NM), Ingemar Ragnemalm (IR), Adrian Horga (AH), August Ernstsson (AE)
Those lectures marked by asterisks overlap fully (**) or partly (*) with similar lectures in TDDC78 Programming of Parallel Computers - Methods and Tools. These lectures are optional for those who have already taken TDDC78, but might be a useful repetition anyway. This repetition of the common core topics is necessary to allow you to take the courses individually or in arbitrary order.
- Lecture 1:
Motivation: The Multicore Challenge. Multicore Architecture Concepts. (CK)
- Lecture 2:
Parallel Programming with Threads and Tasks. (CK)
Lecture 3: (**)
Shared memory architecture concepts and performance issues. (CK)
- Lesson 1:
Introduction to CPU laboratory work. (NM)
- Lecture 4:
Non-blocking synchronization. (CK)
- Lecture 5: (*)
Theory: Parallel programming and cost models. Analysis of parallel algorithms.
Theory (cont.): (*) Speedup anomalies. Amdahl's Law. Fundamental parallel algorithms: parallel prefix sums, parallel list ranking. (CK)
Parallel sorting algorithms: Simple parallel quicksort. (CK)
- Lecture 7:
Parallel sorting algorithms (cont.): Samplesort, Fully parallel quicksort, Bitonic sort, Parallel Mergesort. (CK)
- Lecture 8:
GPU architecture and trends (IR)
- Lecture 9:
Introduction to CUDA programming. (IR)
- Lecture 10:
CUDA programming. GPU lab introduction. (IR)
- Lecture 11:
Sorting on GPU. Advanced CUDA issues. (IR)
- Lecture 12:
Introduction to OpenCL. (IR)
- Lecture 13: (**)
Parallelization of sequential programs. (CK)
- Lesson 2:
OpenCL. Shader programming.
Selected exercises. (IR)
- Lesson 3:
Selected CPU/theory exercises. (NM)
Please solve suggested exercises in advance to be prepared. Use to the following summary of important definitions as a reminder of the necessary background.
- Lecture 14: (*)
Parallel Design Patterns and Skeleton Programming. Multicore Sorting Contest. Outlook. (CK)
We have three lab groups, see the schedule.
- Group_A (32 students, room Southfork, supervised by Nicolas Melot (CPU), Adrian Horga (GPU) and August Ernstsson (CPU,GPU))
- Group_B (16 students, room IDA-Multicore Lab, supervised by Adrian Horga (CPU) and Ingemar Ragnemalm (GPU))
- Group_C (16 students, room IDA-Multicore Lab, supervised by Nicolas Melot (CPU) and Adrian Horga (GPU))
Presence in the lab sessions is mandatory.
Deadlinessee the lab page.
Page responsible: Christoph W Kessler
Last updated: 2016-11-10