Skip to main content

PX425 High Performance Computing in Physics

The module will run from week 3 to week 10 of Term 1, and will share one-hour lectures and two-hour practical workshops with CY901 High Performance Scientific Computing.  Times/rooms are below.


Times and Rooms:

Nicholas Hine
Wednesday (wks 3-10) 12:00-13:00 B2.04/5 on the Science Concourse
Friday (wks 3-10) 13:00-14:00 S0.11 in the Social Sciences Building
Friday (wks 5-9) 14:00-16:00 R0.41 the ITS Work Area

The module begins with the lecture on Wednesday 18th October.

You are strongly encouraged to attend the practical sessions as well as the lectures. Practicals will introduce you to using the CSC systems and allow you to practice the parallel programming skills needed for the assignments. The practical sessions are also your opportunity to consult the lecturer for feedback on submitted assignments.

All the above rooms can be found by typing the room number into the search box on the University's interactive campus map.

Computing access:

Workshops and assignments will require access to the Scientific Computing Research Technology Platform (SCRTP) managed Linux system, which is where the necessary compilers and other software are available.

Please ensure that you have both an ITS username/password and a SCRTP username and password before the first practical. You may have already created a SCRTP account for vacation or final year project work, in which case you do not need to do so again.

You set up your SCRTP account by visiting this page and following the "SCRTP Account Creation page" link. When prompted for your "Research Group Membership" select the appropriate choice from the list of departments. The only execption to this will be if your project supervisor has asked you to register against a specific research group. You should do this well in advance of the first workshop.

Important! You must adhere to SCRTP's usage policy and pay special attention to the pages dealing with the SCRTP desktop, the Cluster of Workstations (CoW) and remote access via the server godzilla. Sanctions will be applied against students who abuse the SCRTP system.


Suggested reading:

  • 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)


Please note that this course does not teach a computer programming language: you are expected already to be proficient in Fortran or C. A good working knowledge of a scientific programming language (either Fortran- 95/2003 or C), as taught for example in the second-year Physics programming course, is a pre-requisite. Students will also be assumed to be familiar with basic Linux commands, program editors, and other material covered in that course.


The course will be examined by a series of programming assignments.

  • A time-limited programming test which must be completed and submitted during the first workshop in week 5.
  • A 1-week programming assignment on code optimisation, issued Friday week 5.
  • Two 2-week programming assignments on shared memory and distributed memory programming, issued on Friday of weeks 6 and 8 respectively.
  • A longer programming and performance measurement assignment, to be conducted over the Christmas vacation.

Each assignment will involve preparing a short report (1-2 pages) which will include a commentary on your submitted program, validation tests, as well as performance data and associated discussion.

MPAGS students

Any Physics graduate students taking this module as part of their quota of MPAGS modules should let the lecturer know by email. They are welcome to attend practical workshops but these are not essential. The overall assessment is a simple pass/fail based on the first four assignments, with a pass mark of 50%.

To access any course material and the Forum, you need to sign in above with your ITS username and password.

See XKCD's view goto statements.