Current postgraduate taught students
COMP60611: Parallel Programs and their Performance (2012-2013)
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 outcome||Unit learning outcomes||Assessment|
|G1 G2||Have 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.|
|G1 G2||Have an understanding of parallel execution time overheads and of techniques for reducing them.|
|G2 G3||Be able to implement a moderately complicated application in a parallel programming language.|
|G1||Have an understanding of some parallel numerical algorithms and their execution behaviour.|
|G4||Be able to analyse and improve the performance of parallel applications.|
Title: Parallel computer architecture: a hardware/software approach
Author: Culler, David E. and Jaswinder Pal Singh and Anoop Gupta
Publisher: Morgan Kaufmann
Title: Programming in Standard Fortran 77
Author: Balfour, A. and D.H. Marwick
Title: Designing and building parallel programs: concepts and tools for parallel software engineering
Author: Foster, Ian
Publisher: Addison Wesley
Title: Computer architecture: a quantitative approach (5th edition)
Author: Hennessy, John L. and David A. Patterson
Publisher: Morgan Kaufmann
Title: Performance optimization of numerically intensive codes
Author: Goedecker, Stefan and Adolfy Hoisie