Hide menu

Multicore and GPU programming

Information page for the CPU lab work and lessons at the course Multicore and GPU programming (TDDD56)


Download general informations, , the slides of lesson 1 and theory notes.

Current status of TDDD56 2012 season parallel programming challenge

Konrad Zuse category

Latest results

Southfork category

Latest results

You can checkout the latest results on http://www-und.ida.liu.se/~nicme26/ (updated once a day)

Getting started with tools used in laboratories

Setup your working environment

You need to have Freja installed for all CPU labs. Download the latest package version and run the script "install" in the root of the archive.

For students in group A (southfork) only: download this script, store it in your student account in ixtab.edu.isy.liu.se or any machine in Southfork and run it to install the R analysis and plotting packages plyr and ggplot2.

Lab0a: 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]

Lab0b: Performance measurement: prefix sum

Introduction by example to performance measurement helper scripts. Based on the helper Freja here

[source files to parallelize and measure] [solution source and measurements files]

Lab work

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


Lab2: Non-blocking stack

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

[source files] [questions]

Lab3: High performance parallel sorting

Use the observations from previous labs to implement a high performance parallel sorting algorithm. The performance are measured and compared accross volonteer groups in a competition rewarding the best parallel programmers.

[source files] [questions]

Page responsible: Nicolas Melot
Last updated: 2014-10-28