Course syllabus for High performance computing

Course syllabus adopted 2021-02-12 by Head of Programme (or corresponding).

Overview

  • Swedish nameHögprestandaberäkning
  • CodeTMA881
  • Credits7.5 Credits
  • OwnerMPENM
  • Education cycleSecond-cycle
  • Main field of studyMathematics
  • DepartmentMATHEMATICAL SCIENCES
  • GradingTH - Pass with distinction (5), Pass with credit (4), Pass (3), Fail

Course round 1

  • Teaching language English
  • Application code 20114
  • Maximum participants150
  • Open for exchange studentsYes

Credit distribution

0101 Examination 7.5 c
Grading: TH
7.5 c
  • Contact examiner
  • Contact examiner
  • Contact examiner

In programmes

Examiner

Go to coursepage (Opens in new tab)

Eligibility

General entry requirements for Master's level (second cycle)
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Specific entry requirements

English 6 (or by other approved means with the equivalent proficiency level)
Applicants enrolled in a programme at Chalmers where the course is included in the study programme are exempted from fulfilling the requirements above.

Course specific prerequisites

Basic courses in mathematics, numerical analysis, programming and data structures. Basic Matlab programming.

Aim

One aim of the course is to provide an insight into computer architecture and the effect it has on the performance of computer programs. The course also aims to provide the student with tools and techniques for code optimization and for parallel programming.

Learning outcomes (after completion of the course the student should be able to)

After completing the course the student will be able to
  • organize programming work on a remote computer using Linux command line tools
  • write simple parallel programs using MPI, OpenMP, or OpenCL
  • describe the basic features of CPUs, GPUs, FPGAs, and hardware accelerators
  • assess the influence of hardware and software on runtime performance.

Content

  • Short introduction to C and Python to the extent that is necessary for the computer labs.
  • Linux command line tools.
  • Parallel programming using threads, OpenMP, MPI, and OpenCL.
  • Hardware architecture.
  • Code optimization and compiler flags.
  • Overview of libraries in numerical analysis.

Organisation

Lectures and computer assignments. The assignments, which make up a substantial part of the course, consist of several short exercises which illustrate how performance is affected by the choice of computer architecture, programming language, data structures etc. The programs should be written in C and Python. Please see the course homepage for more information.

Literature

Lecture notes, manuals and articles.

Examination including compulsory elements

The examination consists of computer based assignments, a short presentation and a take-home exam.

The course examiner may assess individual students in other ways than what is stated above if there are special reasons for doing so, for example if a student has a decision from Chalmers on educational support due to disability.