Skip to main content

CY901N High Performance Scientific Computing

Current Lecturer:

Mike Allen
Tony Arber
Chris Brady
David Quigley
Rudolf A Roemer

Current Course Homepage:

20-24 April 2009


This module will address the rapid increase, in recent years, of computer simulations and data analysis on high performance computers, for research in all fields of scientific computing.

Learning Outcomes:

  • ability to formulate, implement, and evaluate an appropriate high-performance computer algorithm to tackle a task in scientific research.
  • concepts of message passing programming constructs, and their utility in scientific programming applications.
  • ability to write a parallel program using message passing constructs, for scientific applications.


  1. Introduction to Parallel Programming. Super problems need super-computers. Parallel programming. Array constructs and how they represent physical fields. Optimising scientific calculations for high performance. Parallelisation strategies. Compiler directives.
  2. Program development. Writing programs more easily, and with fewer errors. Adopting a structured approach. Using syntax-aware program editors and makefiles. Using interactive development environments. Program testing and debugging.
  3. Advanced parallelization. Harnessing the power of many distributed computers. Distributed memory architectures and cluster computing. Message passing using the MPI standard. Point-to-point and collective communication. Large-scale scientific problems tackled by the single-program-multiple-data paradigm. How to measure the performance of a scientific program on a cluster computer.


A good working knowledge of a scientific programming language (either Fortran- 95/2003 or C), as taught, for example, in PX250 Fortran Programming for Scientists, will be a pre-requisite.

Organizers corner