CS402 15 CATS (7.5 ECTS) Term 2
Option - MEng CS and DM, MSc High-End Scientific Computing, MSc Computer Science, MSc Data Analytics
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
- Understand the role of HPC in science and engineering.
- Be familiar with popular parallel programming paradigms.
- Understand commonly used HPC platforms with particular reference to Cluster system.
- Understand the means by which to measure, assess and analyse the performance of HPC applications.
- Understand the mechanisms for evaluating the suitability of different HPC solutions to solving scientific problems.
- Understand the role of administration, workload and resource management in an HPC management software.
- Fundamental concepts in High Performance Computing
- Shared memory programming (OpenMP)
- Message passing programming (MPI)
- GPU programming
- Parallel decomposition
- Performance measurement and analysis
- High performance I/O
- High performance networking
- High Performance Computing systems
- Typical scientific applications
- Peter Pacheco, Introduction to Parallel Programming, Morgan Kaufmann Publishers, 2011
- Michael J. Quinn, Parallel programming in C with MPI and OpenMP, McGraw-Hill Higher Education, 2004
- William Gropp, Using MPI: portable parallel programming with the message-passing interface, MIT press, 1999
- Further reading: Introduce the Graph 500
- Further Reading: A Note on the Zipf Distribution of Top500 Supercomputers
- Further Reading: Vectorizing C Compilers - How Good Are They?
- Further Reading: Further Reading in High Performance Compilers for Parallel Computing
Two hour examination (70%) One assignment including a programming and analysis exercise (30%)
20 one-hour lectures, 10 one-hour lab sessions.