Introduction to High Performance Computing

Log in to your course web

You are not logged in KTH, so we cannot customize the content.

DD2358 - Introduction to High-Performance Computing

Course Goals 

This is the first course of the HPC sub-track in the computer science program.

  • The goal of this course is to introduce you to the methodologies, approaches, and tools that are necessary for professionals in HPC and software development for Scientific Computing
    • Examples: Fortran, BLAS, perf, PAPI, Paraview, …
    • This part is often missed by regular courses in HPC and somehow assumed by following HPC courses, such as DD2356 (P4) and DD2360 (P2).

Intended Learning Outcomes

At the end of the course, you will be able to:

  • Describe and list the different computer components that are vital to achieving high performance for serial applications
  • Develop and program scientific application using a programming language designed for scientific computing, such as Fortran
  • Use efficiently software engineering tools and libraries for the development and optimization of scientific applications
  • Develop and optimize a scientific application from scratch following the best practices and more convenient HPC tools

Course Organization

The course is organized into three main modules:

  • Basics of Computer Organization
    • What a CPU does, Basics of memory hierarchies and virtual memory, a primer on compilers and linkers
  • Languages for HPC 
    • Efficient multi-dimensional arrays in C, Basics of Fortran, Cython
  • Scientific Computing Engineering, Libraries and Tools
    • Unit tests, Debugging, Profilers,  BLAS, HDF5, Visualization Tools

Course Activities

  • Pre-recorded lectures
  • Zoom lectures
  • Zoom tutorial/lab session
  • 3 Assignment Exercises with bonus exercises
  • Final project

Teachers

Feedback News