This course's sessions will present and discuss how to use containers on Digital Research Alliance of Canada's compute clusters with Apptainer and will discuss how to build Apptainer container images.

Live online classes will take place on Tues. Oct. 7 and Fri. Oct. 10 from 1 P.M. to 2 P.M. Eastern Time. Recordings of live classes will be available afterwards in this course for self-paced learning and review.

Access is restricted to Digital Research Alliance of Canada (formerly Compute Canada) authenticated users only: Yes

Python has become one of the most popular programming languages in scientific computing. It is high level enough that learning it is easy, and coding with it is significantly faster than other programming languages. However, the performance of pure Python programs is often sub-optimal, and might hinder your research. In this course, we will show you some ways to identify performance bottlenecks, improve slow blocks of code, and extend Python with compiled code. You'll learn about various ways to optimise and parallelise Python programs, particularly in the context of scientific and high performance computing.

Prerequisite knowledge: Know what classes and functions are; familiarity with Jupyter Notebook; basic console use; and comfortable with Python software carpentry material.

Live online classes will take place on Tues. Oct. 14, Fri. Oct. 17, Tues. Oct. 21, and Fri. Oct. 24 from 1 P.M. to 2 P.M. Eastern Time. Recordings of live classes will be available afterwards in this course for self-paced learning and review.

Access is restricted to Digital Research Alliance of Canada (formerly Compute Canada) authenticated users only: Yes

This online self-paced course provides basic training for Alliance users on using GPUs on our national systems. Modern GPUs (such as NVIDIA A100 and H100) are massively parallel and very expensive devices. Most of GPU jobs are incapable of utilizing these GPUs efficiently, either due to the problem size being too small to saturate the GPU, or due to the intermittent (bursty) GPU utilization pattern. This course will teach you how to measure the GPU utilization of your jobs on our clusters, and show how to use the two NVIDIA technologies - MPS (Multi-Process Service) and MIG (Multi-Instance GPU) - to improve GPU utilization.

Live online classes will take place on Tues. Oct. 28, and Tues. Nov. 4 from 1 P.M. to 2 P.M. Eastern Time. Recordings of live classes will be available afterwards in this course for self-paced learning and review.

Access is restricted to Digital Research Alliance of Canada (formerly Compute Canada) authenticated users only: Yes

A Practical Guide to Windows Subsystem for Linux (WSL)

Unlock the full potential of Linux on Windows with this two-part course on Windows Subsystem for Linux (WSL). Whether you're a developer, system administrator, or researcher, this course will guide you through deploying, configuring, and leveraging WSL for seamless Linux integration on your Windows machine.

What You'll Learn

  • Introduction to WSL – Understand what WSL is, why it exists, and how it compares to alternatives like Cygwin, MobaXTerm, virtual machines, and dual-boot setups.
  • Installation & Setup – Learn how to install and update WSL, configure system requirements, and switch between WSL 1 and WSL 2.
  • Managing Linux Distributions – Explore how to install, list, switch, export, and unregister Linux distributions in WSL.
  • WSL Commands & CLI Integration – Use essential WSL commands to interact with Windows and Linux seamlessly.
  • Running Windows & Linux Applications Together – Learn how to execute Windows programs from Linux and Linux programs from Windows.
  • WSL & Docker – Integrate Docker with WSL 2 to optimize containerized development workflows.
  • File Sharing – Access Windows files from Linux and use WSL for remote desktop applications.
  • Development & Tooling – Set up development environments, run graphical applications, and optimize your workflow using WSL.

Who Should Take This Course?

Researchers looking to use Linux tools without leaving Windows. Developers managing Linux-based workflows on Windows systems. Anyone interested in running Linux on Windows efficiently. By the end of this course, you'll be able to confidently use WSL for development, system administration, and everyday Linux workflows, unlocking the best of both operating systems.

When Will This Course Take Place?

Live online classes will take place on Fri. Nov. 7 and Tue. Nov. 11 from 1 P.M. to 2 P.M. Eastern Time. Recordings of live classes will be available afterwards in this course for self-paced learning and review.

Access is restricted to Digital Research Alliance of Canada (formerly Compute Canada) authenticated users only: Yes

The majority of computational work on the Digital Research Alliance of Canada (DRAC) compute clusters is achieved by submitting jobs to the Slurm scheduling software. The scheduling software is what researchers use to access the vast and diverse compute nodes made available by DRAC. The scheduling software is also responsible for how fairness of the access to resources is achieved on these clusters that are freely available to all academic researchers in Canada. This course introduces the role of the scheduler on compute clusters before covering topics on its use. Beyond the general content of using a Slurm scheduler this course covers topics that are specific to the DRAC scheduling environment configuration and offers strategies for getting the most out of the national clusters.

Live online classes will take place on Fri. Nov. 14, Tues. Nov. 18, and Fri. Nov. 21 from 1 P.M. to 2 P.M. Eastern Time. Recordings of live classes will be available afterwards in this course for self-paced learning and review.

Access is restricted to Digital Research Alliance of Canada (formerly Compute Canada) authenticated users only: Yes

Jupyter Notebook is commonly used for interactive computing in Python. This workshop provides the options and features for working with Jupyter on the Digital Research Alliance of Canada's remote computing clusters and demonstrates several use case examples on the clusters. During hands-on time, students can practice on the clusters with the available example notebooks or any of their existing notebooks.

Live online classes will take place on Tues. Nov. 25 and Fri. Nov. 28 from 1 P.M. to 2 P.M. Eastern Time. Recordings of live classes will be available afterwards in this course for self-paced learning and review.

Access is restricted to Digital Research Alliance of Canada (formerly Compute Canada) authenticated users only: Yes

This course is three one-hour lectures designed to get engineering students to the spot where they can run engineering software on the Canadian supercomputers. The first lecture will cover the basics of supercomputing: what supercomputers are, what they can and cannot do, how to get access to, and how to use the supercomputers. The second lecture will cover the basics of the open-source OpenFOAM program: how to access it, setting up and running a simple simulation, how to run it in parallel, and how to use ParaView to visualize the results. The final lecture will be the same (running a basic simulation on the cluster), but this time using the proprietary Ansys program.

Live online classes will take place on Tue. Dec. 2, and Fri. Dec. 5  from 1 P.M. to 2 P.M. Eastern Time. Recordings of live classes will be available afterwards in this course for self-paced learning and review.

Access is restricted to Digital Research Alliance of Canada (formerly Compute Canada) authenticated users only: Yes

This self-paced online course is an introduction to GPU programming, focusing on OpenACC. The course consists of two parts, with each part containing three sections. We will start by discussing GPU architectures and basic principles of programming GPUs.  Then we will introduce basic OpenACC constructs using simple code examples: SAXPY, Julia set, reduction, and Jacobi solver. A significant attention will be given to making the code efficient. The course has a programming assignment at the end. Submitted assignments will be graded by the instructors. If your assignment fared well, you will get a certificate for the course completion.

Live online classes will take place on Tues. Dec. 9, Fri. Dec. 12, Tues. Dec. 16, and Fri. Dec. 19 from 1 P.M. to 2 P.M. Eastern Time. Recordings of live classes will be available afterwards in this course for self-paced learning and review.

Access is restricted to Digital Research Alliance of Canada (formerly Compute Canada) authenticated users only: Yes

This is a course focused on advanced research computing literacy, designed for graduate students who are preparing to utilize high-performance computers in their research. The course does not assume any prerequisites, but prior knowledge in scientific computing and some exposure to computers would be beneficial.

Comprising multiple sections, this course covers a broad range of topics at an introductory level. It begins with an overview of what constitutes a supercomputer and introduces the available supercomputing resources across Canada. Subsequent sections delve into the fundamentals of modern computer architecture, scientific computing, parallel computing, GPU utilization, and extend to topics such as relational databases and visualization techniques. Each section serves as an introduction and guide, directing learners to related in-depth courses for further exploration.

To complete the course, the participants are expected to read the course materials and complete quizzes and assignments with a minimum grade of 80%.

Live online classes are scheduled as follows (subject to changes with announcements; notice these times are not consecutive):

  • Tues. Jan 6 and Fri. Jan 9 from 1 P.M. to 2 P.M. Eastern Time.
  • Tues. Jan 20 and Fri. Jan 23 from 1 P.M. to 2 P.M. Eastern Time.
  • Tues. Feb 3 and Fri. Feb 6 from 1 P.M. to 2 P.M. Eastern Time.
  • Tues. Mar 3 and Fri. Mar 6 from 1 P.M. to 2 P.M. Eastern Time.
  • Tues. Mar 17 and Fri. Mar 20 from 1 P.M. to 2 P.M. Eastern Time.

Recordings of live classes will be available afterwards in this course for self-paced learning and review.

Access is restricted to Digital Research Alliance of Canada (formerly Compute Canada) authenticated users only: Yes

ParaView is a very powerful temporal 3D visualization program. The Graham VDI and JupyterHub systems provide a remote desktop interface for doing graphical pre- and post-processing on files stored on graham. This course consists of a general introduction to the Graham VDI and JupyterHub systems and ParaView via a live demonstration that you can follow along. There will be small exercises where you get a chance to see if you have actually understood the concepts.

Live online classes will take place on Tues. Jan. 13 and Fri. Jan. 16 from 1 P.M. to 2 P.M. Eastern Time. Recordings of live classes will be available afterwards in this course for self-paced learning and review.

Access is restricted to Digital Research Alliance of Canada (formerly Compute Canada) authenticated users only: Yes

This C++ course is composed of four one-hour classes:

  • Class 1: Using C++ coroutines (std::generator), ranges, and parallel algorithms
  • Class 2: Using multi-dimensional spans/arrays and slices/subsets of such
  • Class 3: Using linear algebra support
  • Class 4: Using std::execution for asynchronous execution and stacktrace

These classes will discuss how to make use of these in your C++ code today. Live online classes will take place on (two non-consecutive weeks):

  • Tues. Jan. 27 and Fri. Jan. 30
  • Tues. Feb. 10 and Fri. Feb. 13

from 1 P.M. to 2 P.M. Eastern Time on each of those days. Recordings of live classes will be available afterwards in this course for self-paced learning and review.

Access is restricted to Digital Research Alliance of Canada (formerly Compute Canada) authenticated users only: Yes

PyTorch is one of the most popular deep learning frameworks in use today. In this course, we will learn how to get the most out of our PyTorch code when using HPC resources. Topics covered include profiling and debugging PyTorch code, different types of parallelism in PyTorch, and hyper-parameter tuning using HPC resources.

Live online classes will take place on Tues. Feb. 17, Fri. Feb. 20, Tues. Feb. 24, and Fri. Feb. 27 from 1 P.M. to 2 P.M. Eastern Time. Recordings of live classes will be available afterwards in this course for self-paced learning and review.

Access is restricted to Digital Research Alliance of Canada (formerly Compute Canada) authenticated users only: Yes

CMake is a cross-platform, open-source software tool used to automate the building, testing, packaging, and installation of software. It is independent of the programming language and tools used although it is most commonly used to with C, C++, and most recently Fortran code. CMake is particularly nice since it determines for a number of programming languages the dependencies between various files, e.g., header and source files, in order to properly build the software/documentation and to minimize the amount of work required to build such. This course will introduce CMake as well how to write, run, and test CMake scripts. Especially if you are manually building your programs by hand or are experiencing difficulties using shell scripts, it is worth exploring how to use tools such as CMake to make this much easier and much less error-prone to do.

Live online classes will take place on Tue. Mar. 10  and Fri. Mar. 13 from 1 P.M. to 2 P.M. Eastern Time. Recordings of live classes will be available afterwards in this course for self-paced learning and review.

Access is restricted to Digital Research Alliance of Canada (formerly Compute Canada) authenticated users only: Yes

Message Passing Interface (MPI) is the dominating programming model for parallel programming cluster and distributed memory architectures. This module gives an introduction to the basics of MPI. Learners will learn the fundamentals of MPI, how to write simple to intermediate level MPI programs and have an exposure to some advanced topics. The learning materials and exercises are in C and Fortran. Learners are expected to be proficient in any of the two languages and the Linux environment.

Live online classes will take place on Tue. Mar. 24, Fri. Mar. 27, Tue. Mar. 31, and Tue. Apr. 7 from 1 P.M. to 2 P.M. Eastern Time. Recordings of live classes will be available afterwards in this course for self-paced learning and review.

Access is restricted to Digital Research Alliance of Canada (formerly Compute Canada) authenticated users only: Yes