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

This is an archived syllabus from 2013-2014

COMP60611 Parallel Programs and their Performance syllabus 2013-2014

COMP60611 Parallel Programs and their Performance

Level 6
Credits: 15
Enrolled students: 21

Course leader: John Gurd

Additional staff: view all staff

Assessment methods

  • 50% Written exam
  • 50% Coursework
Sem 1 P1 Lecture 2.15 Thu 09:00 - 09:00 -
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.

Feedback methods

Markers provide feedback on laboratory exercise reports and staff are on hand to answer questions in the lab sessions. Verbal feedback is given on the directed reading exercises. Exam revision sessions are scheduled shortly before the exam and students can get feedback on their attempts to answer questions from previous exam papers.

Study hours

  • Assessment written exam (2 hours)
  • Lectures (35 hours)

Employability skills

  • Analytical skills
  • Group/team working
  • Oral communication
  • Problem solving
  • Research
  • Other

Learning outcomes

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.
  • Examination
  • Lab assessment
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

Performance optimization of numerically intensive codesGoedecker, Stefan and Adolfy Hoisie9780898714845SIAM1987
Parallel computer architecture: a hardware/software approachCuller, David E. and Jaswinder Pal Singh and Anoop Gupta9781558603431Morgan Kaufmann1998
Designing and building parallel programs: concepts and tools for parallel software engineeringFoster, Ian9780201575941Addison Wesley1995
Computer architecture: a quantitative approach (5th edition)Hennessy, John L. and David A. Patterson9780123838728Morgan Kaufmann2011
Programming in Standard Fortran 77Balfour, A. and D.H. Marwick0435774867Heinemann1979

Additional notes

Course unit materials

Links to course unit teaching materials can be found on the School of Computer Science website for current students.