Skip to main content
Till KTH:s startsida Till KTH:s startsida

DD2356 Methods in High Performance Computing 7.5 credits

Choose semester and course offering

Choose semester and course offering to see current information and more about the course, such as course syllabus, study period, and application information.


For course offering

Spring 2025 methpc25 programme students

Application code


Headings with content from the Course syllabus DD2356 (Spring 2019–) are denoted with an asterisk ( )

Content and learning outcomes

Course contents

The course focuses on three fields:

  • Parallel computer architecture and parallel software. This includes the presentation of processor and memory systems of parallel computers. Furthermore, different types of parallelism (on instruction level, on computational task level and data parallelism) as well as performance models for parallel systems is described.
  • Programming of multicore systems with OpenMP. Introduction to basic as well as more advanced concepts of OpenMP.
  • Programming of cluster systems with MPI. Presentation of MPI and approaches for the parallelisation of programs.

Hardware and software for different platforms on CSC and PDC will be introduced at the first laboratory session.

Intended learning outcomes

The general aim of the course is to give basic knowledge of theory as well as hardware and software methods for parallel computations, especially issues in hardware and software as well as the interaction between them. Special focus will be put on the programming of multicore and cluster architectures. Also research questions in this field will be brought up.

After passing the course, the student should be able to:

  • account for properties of different parallel architectures,
  • discuss the efficiency of multicore systems and cluster systems,
  • assess the potential for and limitations of parallel computations as well as improve scalability and efficiency of parallel computations,
  • choose between different techniques for parallelisation, depending on application and the current parallel system,
  • write parallel programs for multicore processors and cluster systems with OpenMP and MPI.

Literature and preparations

Specific prerequisites

Experience in programming in C/C++ and/or Fortran is necessary.

Recommended prerequisites

No information inserted


No information inserted


The reading list will be announced on the course web at least 4 weeks before the start of the course.

Examination and completion

If the course is discontinued, students may request to be examined during the following two academic years.

Grading scale

A, B, C, D, E, FX, F


  • LAB1 - Laboratory Assignments, 4.5 credits, grading scale: P, F
  • LAB2 - Project, 3.0 credits, grading scale: A, B, C, D, E, FX, F

Based on recommendation from KTH’s coordinator for disabilities, the examiner will decide how to adapt an examination for students with documented disability.

The examiner may apply another examination format when re-examining individual students.

Opportunity to complete the requirements via supplementary examination

No information inserted

Opportunity to raise an approved grade via renewed examination

No information inserted


Ethical approach

  • All members of a group are responsible for the group's work.
  • In any assessment, every student shall honestly disclose any help received and sources used.
  • In an oral assessment, every student shall be able to present and answer questions about the entire assignment and solution.

Further information

Course room in Canvas

Registered students find further information about the implementation of the course in the course room in Canvas. A link to the course room can be found under the tab Studies in the Personal menu at the start of the course.

Offered by

Main field of study

Computer Science and Engineering

Education cycle

Second cycle

Add-on studies

No information inserted


Stefano Markidis

Supplementary information

Course literature

Patterson DA, Hennessy JL. Computer organization and design: the hardware / software interface. 5th ed. Oxford: Morgan Kaufmann; 2013 [2014].

In this course, the EECS code of honor applies, see: