This module provides a comprehensive understanding of High-Performance Computing (HPC) as a core enabling technology for modern scientific and engineering applications.
This module provides students with a comprehensive understanding of High-Performance Computing (HPC) as a core enabling technology for modern scientific and engineering applications. It introduces the motivation for parallel computing, numerical simulation, floating-point arithmetic, and performance limits, before developing fundamental concepts of parallelism through established models and laws. The module explores the architectures of contemporary multicore CPUs, GPUs, and distributed systems, and the parallel programming paradigms they support, including shared-memory, accelerator, and message-passing approaches. Students gain practical experience with industry-standard programming models and tools, and learn how to analyse, model, and optimise application performance using scalable performance engineering techniques. The module also addresses parallel I/O, software development practices, libraries, performance, portability, and emerging trends in HPC, preparing students to design, implement, and evaluate efficient parallel applications on modern and future high-performance systems.
This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.
By the end of the module, students should be able to:
Reading lists can be found in Talis
Specific reading list for the module
Analytical skills by applying the HPC knowledge learned in this module to develop HPC applications and analyzing their performance, mathematical thinking skills by linking rigor in performance modelling with the design of parallelization strategies, problem solving and IT skills by applying the learned knowledge to do practical lab sessions and the coursework; presentation and communication skills by writing the report of presenting the practical work conducted in the coursework and discussing the experimental results; critical thinking skills by analyzing and comparing the pros and cons of different HPC solutions.
Communication and presentation skills
| Type | Required |
|---|---|
| Lectures | 20 sessions of 1 hour (13%) |
| Practical classes | 10 sessions of 1 hour (7%) |
| Private study | 120 hours (80%) |
| Total | 150 hours |
No further costs have been identified for this module.
You do not need to pass all assessment components to pass the module.
Students can register for this module without taking any assessment.
| Weighting | Study time | Eligible for self-certification | |
|---|---|---|---|
| Coursework | 40% | No | |
|
Develop parallel application(s) using popular/latest parallel programming models. Benchmark and analyze the runtime of the code(s). Write a report to present the development and benchmarking work, and present and discuss the experimental results. Unsupervised practical assignments. This assignment is worth more than 3 CATS and is not, therefore, eligible for self-certification. |
|||
| Centrally-timetabled examination (On-campus) | 60% | No | |
|
CS402 examination
|
|||
| Weighting | Study time | Eligible for self-certification | |
|---|---|---|---|
| In-person Examination - Resit | 100% | No | |
|
CS402 resit examination
|
|||
Individual written feedback on Assessed Coursework. Oral feedback where appropriate, e.g. for presentations.
MEng students must have studied the material in CS132.
This module is Optional for:
This module is Option list A for:
This module is Option list B for: