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
Last updated
This module description was last updated on 19th August 2024.
Ìý