Hide menu

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 3/11. Webreg will be opened at course start.

For students in lab group A (lab sessions held in ISY Southfork): Please also register on paper at lesson 1 if you never had a course in ISY, as we need to create student accounts for the computers in the ISY room where the group A labs are held.

Presence in lab sessions is mandatory.

Lab deadlines

CPU-labs (Labs 1, 2, 3): 23 nov 2017 (soft deadline), 14 dec 2017 18:00 (hard deadline)
GPU-labs (Labs 4, 5, 6): last lab session (13/14 dec 2017)


Download the slides of lesson 1, lesson 2, and theory notes.

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 lab00 of the course "Concurrent programming and Operating Systems" (TDDB68), which include more C-related issues such as pointer management. Lab2 of TDDC78 (http://www.ida.liu.se/~chrke/tddb78/ also provides an introductory work to pthreads.

[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] [instructions]


Lab2: Non-blocking stack

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

[source files] [instructions]

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] [instructions] [SkePU user guide] [Slides from lesson 2]

Lab 4: CUDA 1

lab material

Lab 5: CUDA 2

lab material

Lab 6: OpenCL / Shader programming

lab material

Multicore Programming Contest

Register no later than 8 dec 2017:

CPU-part 11 dec 2017, GPU-part 14 dec 2017 18:00
The winners will be presented in the last lecture (20 dec 2017).

Page responsible: Christoph W Kessler
Last updated: 2017-11-14