Introduction to high-performance computing (HPC)

Instructor: Alex Razoumov (WestGrid)

An introduction to high-performance computing for those without any HPC experience.

We will start with an overview of the HPC cluster hardware and a quick description of the resources available on Compute Canada’s national systems (Cedar, Graham, Béluga, Niagara). We will then take a look at the basic tools and techniques for working on a cluster: software environment and modules, overview of installed programming languages and compilers, quick introduction to parallel programming frameworks, working with make and Makefiles, and installing new software locally. Next, we will discuss Slurm job scheduler: why use it, fairshare and priority, submitting serial jobs and job arrays, submitting OpenMP / MPI / hybrid / GPU jobs, working inside interactive jobs, and tracking your job’s memory usage. We will also take a quick look at working with Python and R on the clusters, as well as best practices in cluster workflows.

Target audience: general

Duration: 6 hours

Level: beginner

Prerequisites: Working knowledge of Linux command line covered on Day 1. We will provide guest accounts to one of our Linux systems.

Laptop software: All attendees will need to bring their laptops with wireless access and with a remote SSH client installed (on Windows laptops we recommend the free edition of MobaXterm; on Mac and Linux laptops no need to install anything).