Skip to main content

FDD3258 Introduction to High Performance Computing 7.5 credits

This course provides the skills needed to utilize high-performance computing (HPC) resources, and includes an introduction to a range of important topics, such as: - Modern HPC architectures - Shared memory programming with OpenMP - Distributed memory programming with MPI - GPU Programming with CUDA

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.

Application

For course offering

Autumn 2023 Start 30 Oct 2023 programme students

Application code

51708

Headings with content from the Course syllabus FDD3258 (Spring 2020–) are denoted with an asterisk ( )

Content and learning outcomes

Course disposition

The course is organized into four modules:

  1. High-Performance Architectures
  2. Programming with OpenMP
  3. Programming with MPI
  4. Programming with CUDA

An assignment is associated with each module of the course.

Course contents

This course provides the skills needed to utilize high-performance computing (HPC) resources, and includes an introduction to a range of important topics, such as:

  • Modern HPC architectures
  • Shared memory programming with OpenMP
  • Distributed memory programming with MPI
  • GPU Programming with CUDA

Intended learning outcomes

At the end of this course, the student will be able to:

  • describe high-performance architectures including GPUs
  • design and implement code with OpenMP to use efficiently shared memory systems
  • design and implement code with MPI to use efficiently supercomputers
  • design and implement code with CUDA to use efficiently systems with GPUs
  • analyze the performance and efficiency of different programming approaches

Literature and preparations

Specific prerequisites

The course is suitable for third-cycle students who are interested in high-performance computing.

Recommended prerequisites

Basic knowledge of Linux command, C/C++ or Fortran languages is required.

Equipment

Access to KTH PDC supercomputers will be provided.

Literature

Lectures slides and additional material will be provided during the course.

Examination and completion

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

Grading scale

P, F

Examination

  • EXA1 - Examination, 7.5 credits, grading scale: P, 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.

Four assignments must be passed in order to pass the course.

Other requirements for final grade

Four assignments must be passed in order to pass the course.

Opportunity to complete the requirements via supplementary examination

No information inserted

Opportunity to raise an approved grade via renewed examination

No information inserted

Examiner

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

This course does not belong to any Main field of study.

Education cycle

Third cycle

Add-on studies

No information inserted

Contact

Dirk Pleiter (pleiter@kth.se)

Postgraduate course

Postgraduate courses at EECS/Computational Science and Technology