Skip to navigation | Skip to main content | Skip to footer

Current postgraduate taught students

COMP60611: Parallel Programs and their Performance (2012-2013)

This is an archived syllabus from 2012-2013

Parallel Programs and their Performance
Level: 6
Credit rating: 15
Pre-requisites: No Pre-requisites
Co-requisites: No Co-requisites
Course Leader: John Gurd
Additional Lecturers: Graham Riley
Course leader: John Gurd

Additional staff: view all staff
Sem 1 w1-5 Lecture 2.15 Thu 09:00 - 17:00 -
Assessment Breakdown
Exam: 50%
Coursework: 50%
Lab: 0%

Themes to which this unit belongs
  • Parallel Computing in the Multi-core Era


Even the smallest computer chip nowadays embodies parallel cores, and today's highest performance computers embody substantial amounts of parallel hardware, to the extent that the latest generation of machines harness the power of hundreds of thousands of cooperating cores. The programming of such highly parallel hardware has proved to be difficult: progress has been slow and achieved mostly by "trial-and-error". This course unit introduces students to the associated difficulties by stages, taking a pragmatic, laboratory-based approach to the problem of making parallel programs work.


This course unit studies the base technologies for High Performance Computing and allows 'hands-on' experience of a state-of-the-art parallel computer to be gained. The course unit explores, through a combination of directed reading, a computer-based teaching (CBT) package, group-based seminars, group-based laboratories and a group-based mini-project, a framework for the development, analysis and performance tuning of parallel algorithms for the solution of mainly numerical problems.

By giving students a 'hands-on' programming view, the foundations are laid for appreciation of the more theoretical approaches that can underpin better design of parallel software that behaves as desired. Research-minded students will be in a position to appreciate why both hardware and software are steadily mutating in order to meet the challenges of the multi-core era. Both topics are studied further in the companion course unit COMP60621.

Programme outcomeUnit learning outcomesAssessment
G1 G2Have an understanding of (1) the different levels of abstraction in computational modelling; (2) a range of different parallel programming models and languages; (3) the range of distinct parallel computer architectures.
  • Lab assessment
  • Examination
G1 G2Have an understanding of parallel execution time overheads and of techniques for reducing them.
  • Lab assessment
  • Examination
G2 G3Be able to implement a moderately complicated application in a parallel programming language.
  • Examination
  • Lab assessment
G1Have an understanding of some parallel numerical algorithms and their execution behaviour.
  • Examination
  • Lab assessment
G4Be able to analyse and improve the performance of parallel applications.
  • Lab assessment

Reading List

Title: Parallel computer architecture: a hardware/software approach
Author: Culler, David E. and Jaswinder Pal Singh and Anoop Gupta
ISBN: 9781558603431
Publisher: Morgan Kaufmann
Year: 1998

Title: Programming in Standard Fortran 77
Author: Balfour, A. and D.H. Marwick
ISBN: 0435774867
Publisher: Heinemann
Year: 1979

Title: Designing and building parallel programs: concepts and tools for parallel software engineering
Author: Foster, Ian
ISBN: 9780201575941
Publisher: Addison Wesley
Year: 1995

Title: Computer architecture: a quantitative approach (5th edition)
Author: Hennessy, John L. and David A. Patterson
ISBN: 9780123838728
Publisher: Morgan Kaufmann
Edition: 5th
Year: 2011

Title: Performance optimization of numerically intensive codes
Author: Goedecker, Stefan and Adolfy Hoisie
ISBN: 9780898714845
Publisher: SIAM
Year: 1987