Schedule

Spring 2024

Where, when, and how

  • Lectures are on Fridays 13:00–15:00 in room E.2.12. Recordings will be available on Canvas for working students or if you are absent due to unforseen circumstances, e.g. illness.
  • Exercises sessions are on Fridays 15:00–17:00 in room E.1.5.

Topics

Date Topic
16 Feb Introduction, multicore hardware, basic terminology, laws of parallel programming
23 Feb Erlang: sequential programming, concurrent programming
1 Mar Erlang: distributed programming, fault tolerance
8 Mar Erlang: the actor model, comparison with other frameworks;
Benchmarking: approach, pitfalls, statistics, reporting
15 Mar GPU Programming using OpenCL: introduction
22 Mar GPU Programming using OpenCL: memory hierarchy
29 Mar GPU Programming using OpenCL: optimization
5 Apr (Easter break)
12 Apr (Easter break)
19 Apr Clojure: introduction, sequential programming
26 Apr Clojure: persistent data structures, atoms, agents
3 May Clojure: software transactional memory
10 May Clojure: software transactional memory
17 May Communicating Sequential Programming and channels;
Categories of concurrency models (task vs. data paralellism, message passing vs. shared memory)
24 May (To be determined: MapReduce / OpenMP and MPI / other topics of interest)

Project deadlines

Erlang Sunday 7 April 2024
OpenCL Sunday 12 May 2024
Clojure Sunday 2 June 2024

The deadline is always at 23:59. You should submit the projects on Canvas.

If you want to hand in late for a valid reason (illness), you need to request an extension before the deadline. If you hand in late otherwise, two points will be deducted per day you were late. If you are more than four days late, you’ll get an absent grade for the course.