Skip to main content Skip to navigation

CY901 High Performance Scientific Computing

The module will run through all ten weeks of Term 1, and will share one-hour lectures and two-hour practical workshops with PX425 High Performance Computing in Physics.


Times and Rooms:

Mike Allen
Monday 11:00-12:00 R1.15 in Ramphal Building
Wednesday 12:00-13:00 B2.02 on the Science Concourse
Friday 13:00-14:00 MS.03 in the Maths-Stats Building
Friday 14:00-16:00 R0.41 IT Services Workroom

There is no teaching on Monday of week 1, therefore the module begins with the lecture on Wednesday 7 October. The module finishes with the Week 10 test and Assignment 6, so there is no lecture or workshop on Friday 11 December.

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

Workshops and Assignments

Please ensure that you have both an ITS username/password and a CSC username and password before the first workshop.

You set up your CSC account by filling in this form. When prompted for your "Research Group Membership" select the "Other / Not listed" option. You should do this well in advance of the first workshop.

Important! You must adhere to CSC's usage policy and pay special attention to the pages dealing with the CSC desktop, the Cluster of Workstations (CoW) and remote access via the server godzilla. Sanctions will be applied against students who abuse the CSC 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)
  • M Lutz and D Ascher, Learning Python (O'Reilly, 2004, or 3rd ed 2007)


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) is a pre-requisite. Students will also be assumed to be familiar with basic Linux commands, program editors, and other material covered in CY900.


The course will be assessed using the following methods

  • Five online tests taking approx 30 mins each. These contribute 40% to the total mark.
  • Five programming assignments, set two weeks apart, each taking approximately 12 hrs, which you are expected to complete in your own time. These contribute 40% to the total mark.
  • One extended programming assignment, taking approximately 30 hrs, to be completed after the end of Term 1. This contributes 20% to the total mark.

Students taking CY901 on an un-assessed basis

Any students wishing to take the course on the basis of attending lectures, and possibly workshops, without formal assessment of their work, should send me an email.

MPAGS students

Any Physics students taking this as part of their quota of MPAGS modules should let me know by email. These students will be assessed on the basis of the online tests (weeks 2,4,6,8,10), and the final (week 11) practical assignment; they are welcome to attend practical workshops but these are not essential, and they do not have to complete the first 5 practical assignments. The assessment is a simple pass/fail based on an overall 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 of Python and goto statements.