SluitenHelpPrint
Switch to English
Cursus: INFOB3CC
INFOB3CC
Concurrency
Cursus informatie
CursuscodeINFOB3CC
Studiepunten (EC)7,5
Cursusdoelen

By the end of the course you will be able to:

  • Design and implement a multithreaded application in Haskell, using techniques and concepts such as:
    • Managing threads
    • Synchronise with locks, semaphores, etc.
    • Data-flow parallelism
    • Data-parallelism
  • Understand the difference between concurrency and parallelism and where techniques for each can be applied to solve problems

  • Calculate the complexity (work and span) of parallel algorithms

  • Reason about the properties of a concurrent algorithm
Inhoud

The course introduces concepts of concurrency and parallelism through the programming language Haskell.

Concrete topics treated in this course include explicit management and synchronisation of threads, as well as higher-level concurrency and parallelism abstractions. These ideas appear not only in Haskell, but in other modern languages such as C#, Scala, and Swift. An important part of the course is devoted to reasoning about the properties of concurrent programs.

The language Haskell imposes a strong separation between pure computations, which are always safe to execute in parallel, and those with side-effects, which may result in non-deterministic behaviour when executed concurrently.

SluitenHelpPrint
Switch to English