Skip to content
Main menu hidden.

Parallel programming for multicore-based systems, 7.5 Credits

Swedish name: Parallell programmering för multicore-baserade system

This syllabus is valid: 2023-07-24 and until further notice

Course code: 5DV152

Credit points: 7.5

Education level: First cycle

Main Field of Study and progress level: Computing Science: First cycle, has at least 60 credits in first-cycle course/s as entry requirements

Grading scale: TH teknisk betygsskala

Responsible department: Department of Computing Science

Established by: Faculty Board of Science and Technology, 2013-12-13

Revised by: Faculty Board of Science and Technology, 2023-03-30


The course gives an introduction to the subject of parallel programming with a focus on computer systems based on multicore processors. Such processors appear in everything from laptops and mobile devices to the world's largest supercomputers. The course teaches theory and practical skills necessary to construct and reason about efficient parallel programs designed for such systems. The course covers, among other things, the two parallel programming models OpenMP and MPI, parallel computer architecture, design and implementation of parallel programs, experimental methodology, parallel programming patterns, and various problems that may arise when programming parallel computers.

Expected learning outcomes

Knowledge and understanding
After completing the course, the student should be able to:

  • (FSR 1) define and with their own words explain concepts and terminology related to parallel programming for multicore-based systems with a focus on the programming models OpenMP and MPI, and account for current trends in parallel computer architecture such as multicore, memory hierarchies, and vector instructions;
  • (FSR 2) account for parallel programming patterns.

Competence and skills
After completing the course, the student should be able to:

  • (FSR 3) perform task decomposition, dependence analysis, and scheduling;
  • (FSR 4) write parallel programs using OpenMP and MPI;
  • (FSR 5) perform experiments whose purpose is to evaluate a parallel program's performance, and clearly present and discuss the obtained results.

Judgement and approach
After completing the course, the student should be able to:

  • (FSR 6) based on given guidelines, evaluate a parallel program.

Required Knowledge

At least 90 ECTS, including 60 ECTS Computing Science, or at least 120 ECTS within a study programme. At least 15 ECTS programming; 7.5 ECTS data structures and algorithms; and 7.5 ECTS systems programming. Proficiency in English equivalent to the level required for basic eligibility for higher studies.

Form of instruction

Instruction consists of lectures, group exercises, and mandatory assignments. In addition to scheduled activities, individual work with the material is also required.

Examination modes

The performance on the course is assessed based on a number of mandatory assignments and a written exam. On the course as a whole, the grades given are Fail (U), Pass (3) or Pass with Mark (4), or Pass with Distinction (5). In order to pass the course completely all mandatory parts must be passed as well. The final grade of the course is a summary assessment of the results and decided only after all mandatory parts are passed.

Adapted examination
The examiner can decide to deviate from the specified forms of examination. Individual adaptation of the examination shall be considered based on the needs of the student. The examination is adapted within the constraints of the expected learning outcomes. A student that needs adapted examination shall no later than 10 days before the examination request adaptation from the Department of Computing Science. The examiner makes a decision of adapted examination and the student is notified.

Other regulations

If the syllabus has expired or the course has been discontinued, a student who at some point registered for the course is guaranteed at least three examinations (including the regular examination) according to this syllabus for a maximum period of two years from the syllabus expiring or the course being discontinued.


Valid from: 2023 week 30

We recommend using one of the following books:

Pacheco Peter S.
An introduction to parallel programming
Amsterdam : Morgan Kaufmann : c2011 : xix, 370 p. :
ISBN: 9780123742605 (hardback)
Search the University Library catalogue

Artiklar som tillhandahålls av institutionen
Institutionen för datavetenskap :