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. Oct. 8 and Fri. Oct. 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.
- Teacher: Jinhui Qin
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. 15, Fri. Oct. 18, Tues. Oct. 22, and Fri. Oct. 25 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.
- Teacher: Nastaran Shahparian
- Teacher: Collin Wilson
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. Oct. 29 and Fri. Nov. 1 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.
- Teacher: Tyson Whitehead
This course's sessions will present and discuss how to use containers on Digital Research Alliance of Canada's compute clusters with Apptainer and how to build Apptainer container images.
Live online classes will take place on Tues. Nov. 5 and Fri. Nov. 8 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.
- Teacher: Paul Preney
Some CPU-based Python libraries for data analytics, like Numpy, Pandas, Scikit-Learn, etc., usually work well. As data sizes continue to grow, traditional CPU-based approaches often struggle to deliver timely insights. This workshop introduces GPU-accelerated data analytics using the RAPIDS suite in Python. RAPIDS leverages the power of NVIDIA GPUs to accelerate data processing and analytics tasks with less or no effort in code changes.
Live online classes will take place on Tues. Nov. 12 and Fri. Nov. 15 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.
- Teacher: Jinhui Qin
This is an introductory mini course for MATLAB on Alliance clusters, with the focus on Parallel Computing Toolbox (PCT) and MATLAB Compiler and Runtime libraries (MCR). In first session, we will talk about the current status of MATLAB, license issues, and job files on the clusters, followed by the approach of parallel computing with PCT including parfor for parallel for loop, and spmd for parallel tasks, etc., and the procedure to use MCR with examples. Some screenshots will be used in the slides to show the step-by-step approaches. The second session will be a lab type with demos, self practice, Q&A, etc.. The goal of this course is to run MATLAB more efficiently on the clusters.
Live online classes will take place on Tues. Nov. 19 and Fri. Nov. 22 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.
- Teacher: Jemmy Hu
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 Tues. Nov. 26 and Fri. Nov. 29 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.
- Teacher: Armin Sobhani
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 Tues. Dec. 3, Fri. Dec. 6, Tues. Dec. 10, Fri. Dec. 13, Tues. Dec. 17, and Fri. Dec. 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.
- Teacher: Baolai Ge
- Teacher: Sergey Mashchenko
- Teacher: Paul Preney
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 acess 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 Fri. Jan. 10, Tues. Jan. 14, and Fri. Jan. 17 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.
- Teacher: Doug Roberts
- Teacher: Tyson Whitehead
This C++ course is composed of four one-hour classes:
- Class 1: Using multi-dimensional spans/arrays and slices/subsets of such
- Class 2: Using linear algebra support
- Class 3: Using std::execution / "senders and receivers" for asynchronous execution
- Class 4: Session for questions and answers
All of the above can be done today even though most are expected to be in the C++26 standard (which is not a standard yet). The NVIDIA HPC SDK (NVHPC) compiler has had support (CPU and GPU) for all of the above since version 22.11. Additionally there are available open source reference implementations of the above that can be used with other compilers and hardware. These classes will discuss how to make use of these in your C++ code today on both CPUs and GPUs.
Live online classes will take place on Tues. Jan. 21, Fri. Jan. 24, Tues. Jan. 28 and Fri. Jan. 31 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.
- Teacher: Paul Preney
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. 4, Fri. Feb. 7, and Tues. Feb. 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.
- Teacher: Collin Wilson
NOTE: Description is to be announced at a later time. WSL is "Windows Subsystem for Linux".
Live online classes will take place on Tues. Feb. 18 and Fri. Feb. 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.
- Teacher: Ed Armstrong
GPU is the de facto accelerator in deep learning. In this course, we will cover a few topics related to the utilization of GPU (or GPUs). (1) Benchmark and compare the performances in training NN models between CPU and GPU. (2) Monitor the usage of GPU. (3) Efficient use of GPU (4) Training with multiple GPUs.
Live online classes will take place on Tues. Feb. 25 and Fri. Feb. 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.
- Teacher: Weiguang Guan