The ever-increasing computing power of modern hardware has led to High Performance Computing becoming an integral part of today's society, allowing us to significantly increase our understanding of the world around us. Modelling weather, planetary and atomic interaction, examining movement of fluid around structures, and predicting nuclear fusion and fission reactions are a handful of examples where High Performance Computing has become an essential tool in advancing our knowledge of science and engineering. This module aims to give students a strong understanding of the principals, motivation and fundamental concepts within High Performance Computing. Students can expect to learn the parallel programming paradigms used in HPC applications, as well as the core mathematical principles which link the physical and compute space. As well as understanding the building blocks of HPC applications, students will also learn methods to evaluate and understand the performance of such software, including understanding the current landscape of computer hardware.
Learning Outcomes
By the end of the module students should be able to:
20.1
Demonstrate understanding of the core ideas and motivation of High Performance Computing.
20.2
Demonstrate understanding of common parallel programming paradigms.
20.3
Understand how to analyse application performance using common methods.
20.4
Demonstrate knowledge of different HPC hardware platforms.
20.5
Understand the mathematical principles which link the physical and compute space.