Introduction to Parallel Programming

5 credits

Syllabus, Master's level, 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)
Finalised by
The Faculty Board of Science and Technology, 20 October 2022
Responsible department
Department of Information Technology

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.

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.