Hide menu

TDDD56 Multicore and GPU programming

Information page for the CPU and GPU lab work and lessons

Lab Series

Please register for the labs via webreg by friday 4/11. Webreg will be opened at course start.

Presence in lab sessions is mandatory.

Lab deadlines

CPU-labs (Labs 1, 2, 3): last CPU lab session of your group, 24/25 nov 2022 (soft deadline), 16 dec 2022 10:00 (hard deadline)
GPU-labs (Labs 4, 5, 6): last GPU lab session of your group (14/16 dec 2022)

Slides and general info

Download the slides of lesson 1. (last updated 2022-11-04)

Download the slides of lesson 2. (last updated 2021-11-16)

Getting started with tools used in laboratories

Lab0: Introduction to C and the pthread API

A quick introduction by example to C syntax, data type and their use, functions, modules, as well as spawning and waiting for threads. Find another introduction from former Lab 0 of the course "Concurrent programming and Operating Systems" (TDDB68), which include more C-related issues such as pointer management.

[source files]

Lab work

[Helper function for computing time spans]

Lab1: The Mandelbrot set and load balancing

Parallelize a generator of visual representation of the Mandelbrot set, fractals, observe load-balancing issues and implement a solution to them.

[source files] (Last updated 2018-11-12, no changes for 2022)

[instructions] (Last updated 2020-11-10)


Lab2: Non-blocking stack

Implement and measure the performance of a non-blocking, Treiber stack

[source files] (Last updated 2018-11-16, no changes for 2022)

[instructions] (Last updated 2020-11-18)

Lab3: High-level parallel programming

Try out high-level parallel programming with the data-parallel SkePU skeleton programming framework. Use the skeletons to implement image filters, including a median blur filter.

[source files] (Last updated 2022-11-17)

[instructions] (Last updated 2020-11-25)

[SkePU user guide] (2020)

[slides] (Last updated 2020-11-18)

Lab 4: CUDA 1

Lab material (from ISY)

Lab 5: CUDA 2

Lab material (from ISY)

Lab 6: OpenCL

Lab material (from ISY)

Page responsible: Christoph W Kessler
Last updated: 2022-11-17