Accessibility statement

High Performance Computing - PHY00012M

« Back to module search

  • Department: Physics
  • Module co-ordinator: Prof. Matt Probert
  • Credit value: 10 credits
  • Credit level: M
  • Academic year of delivery: 2022-23
    • See module specification for other years: 2021-22

Module will run

Occurrence Teaching period
A Autumn Term 2022-23

Module aims

The aim of this module is to introduce you to the key ideas of High Performance Computing (HPC) in physics. it will show how the historical developments in HPC have come about, how these impact on current technologies, how best to utilize these technologies for numerically intensive calculations, and what future developments are likely. 

This module presumes that you already have a basic programming ability in (at least one of) Fortran or C or C++. We will NOT be teaching the basics of programming - this is a practical module in which your programming skills will be developed with a focus on speed of execution, both in serial and parallel programming. 

Module learning outcomes

At the end of this module successful students will be able to:

  • Describe the different types of HPC hardware and make informed decisions as to what will be best in any particular situation
  • Use simple profiling tools to identify hotspots in a code and develop strategies for overcoming the hotspots
  • Design efficient coding solutions to a variety of numerical problems
  • Create a parallel program for an MP machine using message-passing techniques

Module content


  • Introduction to hardware for a typical computer
  • Introduction to networks


  • Benchmarking
  • Computer languages
  • Floating point numbers
  • Introduction to programming
  • Use of tools in programming
  • Use of software profiling


  • Optimizing a serial program
  • Introduction to parallel programming - how to think parallel
  • Writing a parallel program using OpenMP
  • Introduction to GPU programming
  • Writing a parallel program using MPI
  • Example applications


  • Current state-of- the-art supercomputers
  • Future possibilities


Task Length % of module mark
Continuous assessment: HPC assignments
N/A 24
Essay: HPC assignment
N/A 76

Special assessment rules


Additional assessment information

The module will be assessed by practical challenges and by an assignment set at the end of Term 1. The practical challenges enable you to practise the different skills required to successfully complete the assignment. The major component of the assignment will require writing and testing a parallel program to solve a particular set problem.


Task Length % of module mark
Essay: HPC assignment
N/A 76

Module feedback

Our policy on how you receive feedback for formative and summative purposes is contained in our Department Handbook.

Indicative reading

For each lecture, students will be provided with a complete set of handouts and students will be expected to annotate these with additional comments arising from the lecture. Full colour copies of the notes will also 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

The information on this page is indicative of the module that is currently on offer. The University is constantly exploring ways to enhance and improve its degree programmes and therefore reserves the right to make variations to the content and method of delivery of modules, and to discontinue modules, if such action is reasonably considered to be necessary by the University. Where appropriate, the University will notify and consult with affected students in advance about any changes that are required in line with the University's policy on the Approval of Modifications to Existing Taught Programmes of Study.