Skip to main content Skip to navigation
Throughout the 2021-22 academic year, we will be prioritising face to face teaching as part of a blended learning approach that builds on the lessons learned over the course of the Coronavirus pandemic. Teaching will vary between online and on-campus delivery through the year, and you should read guidance from the academic department for details of how this will work for a particular module. You can find out more about the University’s overall response to Coronavirus at:

PX425-7.5 High Performance Computing in Physics

Undergraduate Level 4
Module leader
Nicholas Hine
Credit value
Module duration
5 weeks
100% coursework
Study location
University of Warwick main campus, Coventry
Introductory description

The module will address the increased use of computer simulation and data analysis on high performance computers in all fields of computational physics and other sciences. Computing skills are greatly valued across science and beyond and we encourage students to go as far as they can to develop such skills.

Module web page

Module aims

To continue your training in the use of computers by exploring the use of super-computers. The module should teach how to write scalable, portable programs for parallel computer systems and explore how large-scale physics problems are tackled.

Outline syllabus

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.

Programming for efficiency. Modern cache architectures and CPU pipelining. Avoiding expensive and repeated operations. Compiler optimisation flags. Profiling with gprof.

Introduction to parallel computing. Modern HPC hardware and parallelisation strategies. Applications in Physics, super problems need super-computers.

Shared memory programming. The OpenMP standard. Parallelisation using compiler directives. Threading and variable types. Loop and sections constructs. Program correctness and reproducibility. Scheduling and false sharing as factors influencing performance.

Distributed memory programming. The MPI standard for message passing. Point-to-point and collective communication. Synchronous vs asynchronous communication. MPI communicators and topologies.

GPU programming. CUDA vs OpenCL. Kernels and host-device communication. Shared and constant memory, synchronicity and performance. GPU coding restrictions.

Limitations to parallel performance. Strong vs weak scaling. Amdahl’s law. Network contention in modern many-core architectures. Mixed mode OpenMP+MPI programming.

Learning outcomes

By the end of the module, students should be able to:

  • Use visualisation libraries and desktop visualisation tools; be able to write a scientific application with a graphical user interface, using a toolkit
  • Write a parallel program using shared-memory or message passing constructs, for physics applications
  • Explain the concepts underlying Grid computing and e-science, and discuss their general areas of applicability.
Indicative reading list

R Chandra et al, Parallel Programming in OpenMP (Morgan Kaufmann, 2000)
P Pacheco, Parallel Programming with MPI (Morgan Kaufmann, 1996)
M Quinn, Parallel Programming in C with MPI and OpenMP (McGraw-Hill, 2003)
D Kirk and W Hwu, Programming Massively Parallel Processors (Elsevier, 2010)

View reading list on Talis Aspire

Subject specific skills

Skills in computer-modelling, reasoning, thinking. Knowledge of mathematics and physics

Transferable skills

Analytical, communication, computing and general IT, problem-solving, self-study

Study time

Type Required
Lectures 15 sessions of 1 hour (20%)
Demonstrations 5 sessions of 2 hours (13%)
Private study 50 hours (67%)
Total 75 hours
Private study description

Working through lecture notes, formulating problems, writing and testing code, discussing with others taking the module, preparing and submitting coursework


No further costs have been identified for this module.

You do not need to pass all assessment components to pass the module.

Assessment group A1
Weighting Study time
Coding assignments 100%

Test computing skills

Feedback on assessment

General feedback addressing common issues arising out of assignments will be given in lectures. Feedback on individual submissions will be given electronically via a web page with customised content for each student.


This module is Core optional for:

  • Year 1 of TPXA-F344 Postgraduate Taught Modelling of Heterogeneous Systems

This module is Optional for:

  • TMAA-G1PE Master of Advanced Study in Mathematical Sciences
    • Year 1 of G1PE Master of Advanced Study in Mathematical Sciences
    • Year 1 of G1PE Master of Advanced Study in Mathematical Sciences
    • Year 1 of G1PE Master of Advanced Study in Mathematical Sciences
  • Year 1 of TMAA-G1P9 Postgraduate Taught Interdisciplinary Mathematics
  • Year 1 of TMAA-G1PD Postgraduate Taught Interdisciplinary Mathematics (Diploma plus MSc)
  • Year 1 of TMAA-G1P0 Postgraduate Taught Mathematics
  • Year 1 of TMAA-G1PC Postgraduate Taught Mathematics (Diploma plus MSc)
  • Year 4 of UPXA-F304 Undergraduate Physics (BSc MPhys)
  • Year 4 of UPXA-F303 Undergraduate Physics (MPhys)

This module is Core option list A for:

  • Year 2 of TPXA-F345 Postgraduate Taught Modelling of Heterogeneous Systems (PGDip)

This module is Option list A for:

  • Year 1 of TMAA-G1P0 Postgraduate Taught Mathematics
  • Year 3 of UMAA-G100 Undergraduate Mathematics (BSc)
  • Year 4 of UMAA-G101 Undergraduate Mathematics with Intercalated Year

This module is Option list B for:

  • Year 4 of UPXA-FG33 Undergraduate Mathematics and Physics (BSc MMathPhys)
  • Year 4 of UPXA-FG31 Undergraduate Mathematics and Physics (MMathPhys)

This module is Option list C for:

  • UMAA-G105 Undergraduate Master of Mathematics (with Intercalated Year)
    • Year 3 of G105 Mathematics (MMath) with Intercalated Year
    • Year 5 of G105 Mathematics (MMath) with Intercalated Year
  • UMAA-G103 Undergraduate Mathematics (MMath)
    • Year 3 of G103 Mathematics (MMath)
    • Year 4 of G103 Mathematics (MMath)
  • UMAA-G106 Undergraduate Mathematics (MMath) with Study in Europe
    • Year 3 of G106 Mathematics (MMath) with Study in Europe
    • Year 4 of G106 Mathematics (MMath) with Study in Europe