Syllabus for Introduction to Parallel Programming

Introduktion till parallellprogrammering


  • 5 credits
  • Course code: 1DL530
  • Education cycle: Second cycle
  • Main field(s) of study and in-depth level: Computer Science A1N, Technology A1N
  • Grading system: Fail (U), Pass (3), Pass with credit (4), Pass with distinction (5)
  • Established: 2017-03-09
  • Established by:
  • Revised: 2022-10-20
  • Revised by: The Faculty Board of Science and Technology
  • Applies from: Autumn 2023
  • Entry requirements:

    120 credits including 20 credits in computer science including a second course in programming using an imperative and object-oriented language and Algorithms and Data Structures I and Computer Architecture I. Proficiency in English equivalent to the Swedish upper secondary course English 6.

  • Responsible department: Department of Information Technology

Learning outcomes

On completion of the course, the student should be able to:

  • explain and recognize basic concepts of concurrent and parallel computation,
  • write and modify programs that use threads and locks to exploit shared-memory concurrency,
  • explain common issues in shared-memory programming and use synchronization to avoid these issues,
  • implement solutions for fundamental synchronization problems,
  • explain consistency models and apply them to reason about the correctness of concurrent programs,
  • identify potential for concurrency or parallelism in sequential algorithms, and reimplement them accordingly.


Basic concepts of concurrent and parallel computation, e.g., speedup and parallel slowdown, Amdahl's law, Flynn's taxonomy, instruction-level parallelism, data independence. Shared-memory concurrency based on threads and locks, and its use in a language such as C++. Associated concepts and issues, e.g., synchronization, non-determinism, data races, deadlocks, fairness. Fundamental synchronization problems, such as the producer-consumer problem, and techniques for their solution. Consistency models such as linearizability and sequential consistency. The fork-join model. Task parallelism vs. data parallelism.


Lectures, labs.


Oral and written examination of assignments. Written exam.

If there are special reasons for doing so, an examiner may make an exception from the method of assessment indicated and allow a student to be assessed by another method. An example of special reasons might be a certificate regarding special pedagogical support from the disability coordinator of the university.

Other directives

The course cannot be included in the same degree as 1DL540 Language Abstractions For Concurrent and Parallel Programming, 10 ECTS credits, or 1DT096 Operating Systems and Process Oriented Programming.

Reading list

Reading list

Applies from: Autumn 2023

Some titles may be available electronically through the University library.

  • Maurice Herlihy. Nir Shavit., The Art of Multiprocessor Programming, Revised Reprint

    Morgan Kaufmann Publishers, 2012

    Find in the library

Last modified: 2022-04-26