¹û¶³Ó°Ôº

XClose

¹û¶³Ó°Ôº Module Catalogue

Home
Menu

Techniques of High-Performance Computing (PHAS0102)

Key information

Faculty
Faculty of Mathematical and Physical Sciences
Teaching department
Physics and Astronomy
Credit value
15
Restrictions
In order to take this module, students will need to understand basic programming, which is not taught as part of the module. The main programming language in the course is Python. Students should have a good grasp of Python and its concepts (functions, objects, etc.). We will use some low-level programming in C. While strong prerequisites in C are not necessary, students will be required to engage with C programming. It is strongly recommended that students have a basic knowledge on working with a Linux/Unix command line. A basic understanding of simple PDEs (e.g. Laplace equation, wave equation, heat equation), and their numerical solution is required. Students also need a working knowledge of basic techniques from linear algebra.
Timetable

Alternative credit options

There are no alternative credit options available for this module.

Description

Outline and Aims:

The aim of this module is to give an introduction into modern techniques of High-Performance Computing. The emphasis is on a balanced mix between the necessary theoryand practical examples. At the end students will be able to apply modern HPC techniques to implement and solve a wide range of typical PDE problems on advanced computing platforms.

Intended Learning Outcomes:

On successful completion of the module the student should be able to:

  • Choose the right HPC technologies and parallel software libraries for a given problem;
  • Write fast algorithms for CPUs and GPUs;
  • Be able to use parallel sparse-matrix techniques, linear and iterative solvers;
  • Apply a range of preconditioning techniques;
  • Develop a computational simulation from the initial PDE up to the solver and post-processing step.

Teaching and Learning Methodology:

In addition to timetabled lecture hours, it is expected that students engage in self-study in order to master the material. This can take the form, for example, of practicing example questions and coding, and further reading in textbooks and online.

Indicative Syllabus:

Part 1: HPC TechnologiesÌý

  • Design of HPC Systems
  • Parallelization Technologies,
  • Python for High-Performance Computing

Part 2: An introduction to many-core technologies via OpenCLÌý

  • Basics of many-core processing
  • Differences between CPUs and GPUs
  • The OpenCL Programming Model
  • Design of OpenCL kernels

Part 3: Sparse matrices and linear algebraÌý

  • Data storage schemes for sparse matrices
  • Sparse Matrix Vector Products
  • Sparse LU Decomposition
  • Iterative solvers
  • Efficient implementation of sparse matrix operations in OpenCL

Part 4: Many particle simulationsÌý

  • Basis of particle simulations
  • Acceleration of particle simulations
  • Implementation in OpenCL

Part 5: Spectral methodsÌý

  • Basic ideas of spectral methods (Fourier and Chebychev type methods)
  • Spectral differentiation matrices
  • Implementing spectral methods to solve wave problems

Module deliveries for 2024/25 academic year

Intended teaching term: Term 1 ÌýÌýÌý Postgraduate (FHEQ Level 7)

Teaching and assessment

Mode of study
In person
Methods of assessment
100% Coursework
Mark scheme
Numeric Marks

Other information

Number of students on module in previous year
32

Intended teaching term: Term 1 ÌýÌýÌý Undergraduate (FHEQ Level 7)

Teaching and assessment

Mode of study
In person
Methods of assessment
100% Coursework
Mark scheme
Numeric Marks

Other information

Number of students on module in previous year
48

Last updated

This module description was last updated on 8th April 2024.

Ìý