Advanced High Performance Computing - PHY00041M
- Department: Physics
- Credit value: 10 credits
- Credit level: M
- Academic year of delivery: 2022-23
Related modules
Module will run
Occurrence | Teaching period |
---|---|
A | Spring Term 2022-23 |
Module aims
The aim of this module is to develop your knowledge of High Performance Computing (HPC) in physics and parallel programming skills. The module focuses on advanced parallel programming using Graphics Processing Units (GPUs) and multicore processors and how to match programming methods to the underlying hardware. You will also learn how to take a problem in physics and devise, implement and test a HPC software solution. This module requires previous programming experience in a high performance language (Fortran or C or C++).
Module learning outcomes
At the end of this module successful students will be able to:
- Design efficient coding solutions to a variety of numerical problems
- Create a parallel program for an MP machine using threading, message-passing, and GPU acceleration techniques
- Apply HPC techniques to solve scientific problems
- Analyse a scientific problem to determine an appropriate parallelisation strategy
- Assess the performance and scalability of a parallel code
Module content
Subject content
GPU Programming (GPGPU) and Machine learning
- High Performance Computing with C++
- GPU hardware and data transfers
- Custom compute Kernels and optimisation
- Introduction to Machine learning
Advanced parallel programming
- Parallel algorithm design
- Topology aware parallel programming
- Parallel Random Number Generation
- Advanced vectorisation and data linearization
- Advanced parallel programming with Hybrid OpenMP/MPI/GPGPU
- Parallel data input and output
HPC software lifecycle and validation
- Advanced version control
- Collaborative software development
- Software development models and structured programming
- Software testing and validation
Indicative assessment
Task | % of module mark |
---|---|
Essay/coursework | 100 |
Special assessment rules
None
Additional assessment information
The module will be assessed by a final assignment set at the end of Term 2 featuring an advanced parallel programming challenge where you will analyse a computational problem, devise a suitable parallelisation strategy and implement a parallel code to solve the problem.
Indicative reassessment
Task | % of module mark |
---|---|
Essay/coursework | 100 |
Module feedback
Our policy on how you receive feedback for formative and summative purposes is contained in our Department Handbook.
Indicative reading
Full colour copies of the notes will be available on-line after each lecture.
Introduction to High Performance Computing for Scientists and Engineers by Georg Hager and Gerhard Wellein (Chapman and Hall / CRC 2010) **
Writing Scientific Software: A Guide to Good Style by S. Oliveira and D.E. Stewart (Cambridge University Press, 2006)