The module provides a solid foundation in High Performance Computing (HPC) and its role in science and engineering. After introducing the major scientific application areas and basic concepts of parallel computing, it outlines the hardware design of modern HPC platforms and the parallel programming models that they support. The principal methods of measuring and characterising application and hardware performance are then covered, with particular reference to complex scientific- and business-based HPC codes. The final topic is the Computational Grid, where the fundamental issues of administration, scheduling, code portability and data management are explored.
- At the end of the module, a student will have an understanding of
- The role of HPC in science and engineering.
- The most commonly used HPC platforms and parallel programming models.
- The means by which to measure, analyse and assess the performance of HPC applications and their supporting hardware.
- Mechanisms for evaluating the suitability of different HPC solutions to common problems found in Computational Science.
- The role of administration, scheduling, code portability and data management in an HPC environment, with particular reference to Grid Computing.
- The potential benefits and pitfalls of Grid Computing.
- Fundamental concepts in High Performance Computing
- Shared memory programming (OpenMP)
- Message passing programming (MPI)
- Parallel decomposition
- Hardware, compilers and performance programming
- Performance measurement and estimation
- High performance networking
- Computation grids and escience