Introduction to Parallel Computing
Course further information
High-performance computing (HPC) implies parallel computing. In this workshop, we build on our First Hands-on Experience on a HPC Cluster and learn what parallel computing is, which pitfalls and bottlenecks one may encounter, and how you we can parallelize a computational problem.
We will start by motivating the need for high-performance computing and describing what we mean by parallel computing. We will look into the theoretical limits of parallel scalability with Amdahl’s law and Gustavson’s law and explore those limits for a real-world application.
Finally, we will learn how we can code parallel algorithms by first understanding the kinds of parallelism modern compute hardware offers and second by exploring the programming interfaces that we can use to leverage that parallelism.
For the practical parts, we will use the university cluster “Draco”. If you do not yet have access to the cluster, please apply for it via our Service-Desk. Please provide your alphanumeric university login.
Please note that is workshop does by no means offer a comprehensive introduction to parallel programming. Although we are also writing a parallelised program here, we can only provide a first glimpse into the topic.
This workshop is held in person, online particiaption is not possible. The course is taught in English.
Prerequisites
- Basic knowledge of Linux, the command line (e.g. Bash) and SSH
- Experience in at least one high-level programming language such as Python or Fortran
- Initial experience with a workload manager such as Slurm
- User account of the University of Jena, which must be specified on the registration page