Postgraduate Course: Practical Introduction to High Performance Computing (PGPH11091)
Course Outline
School | School of Physics and Astronomy |
College | College of Science and Engineering |
Credit level (Normal year taken) | SCQF Level 11 (Postgraduate) |
Course type | Online Distance Learning |
Availability | Not available to visiting students |
SCQF Credits | 20 |
ECTS Credits | 10 |
Summary | This course will cover:
*Basic components of HPC systems: processors, memory, interconnect, storage.
*Classification of architectures: SIMD/MIMD, shared vs distributed memory, clusters.
*System software: OSs, processes, threads, scheduling, batch systems.
*Brief history of HPC systems, including Moore¿s Law.
*Linux/Unix tools useful to programmers - editors, file and process managers.
*How programs run - fundamentals of operating systems and compilers.
*Testing programs automatically.
*Measuring speed and resource usage - profiling and performance.
*Running scientific codes as experiments.
*Basic concepts of shared memory: threads, tasks, shared/private data, synchronisation.
*Concepts of OpenMP: parallel regions, shared/private variables, parallel loops, reductions.
*The message-passing model and concepts of the MPI library.
*Anatomy of send and receive (synchronous and asynchronous); bandwidth and latency.
*Trends and demographics in HPC and HPC vendors; challenges in HPC Today and the Exascale.
*Cloud and distributed computing.
*HPC Case Studies.
|
Course description |
Not entered
|
Entry Requirements (not applicable to Visiting Students)
Pre-requisites |
|
Co-requisites | |
Prohibited Combinations | |
Other requirements | None |
Course Delivery Information
Not being delivered |
Learning Outcomes
On completion of this course you should be able to:
*Understand the key components of HPC architectures
*Understand how the components are put together to form complete systems
*Understand how HPC system software is used to manage the hardware.
*Be able to build code in a Linux/Unix environment and understand the stages involved.
*Describe the features and relative strengths and weaknesses of C, C++, Python and Fortran 90.
*Use the make tool to build multi-file programs.
*Use svn and git to manage source code within a single repository.
*Understand the importance of testing, how to write automated tests for scientific and technical applications.
*Understand the importance of performance and Amdahl¿s law.
*Understand the message-passing model in detail.
*Explain the circumstances which cause issues such as deadlock.
*Measure and comment on the performance of MPI codes.
*Understand the key concepts of multithreaded programming.
*Describe four key parallelisation strategies used in modern HPC codes.
*List several current HPC vendors and their products and services
*Explain the key issues for HPC in the future
|
Additional Information
Graduate Attributes and Skills |
Not entered |
Keywords | Not entered |
Contacts
Course organiser | |
Course secretary | |
|
|