Syllabus for Introduction to Parallel Programming
Introduktion till parallellprogrammering
Syllabus
- 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.
Content
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.
Instruction
Lectures, labs.
Assessment
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