Parallel programming in Python. We will cover subprocess, numexpr, multiprocessing, MPI, and other parallel-enabling python packages.
Format: In person, but also broadcast and recorded.
SciNet Education Site
-
Welcome to the Education Site for SciNet, the High Performance Computing Consortium at the University of Toronto. Here you will find the course materials for all the classes and courses taught by SciNet.
Our training covers many topics in Research Computing and Data Science, in a variety of forms, such as webinars, workshops, and multi-week courses. Some events are online, while others are in-person, but many of the latter are also broadcast and recorded.
Access to slides and recordings is open to anyone, but to register for courses and to work towards a SciNet certificate, login is required. Apart from the University of Toronto graduate courses in the list, all training events are free of charge.
Skip available courses
Available courses
In about 90 minutes, learn how to use the SciNet systems Niagara and Mist, from securely logging in to running computations on the supercomputer. Experienced users may still pick up some valuable pointers.
Format: In-person, as well as broadcast and recorded.
This workshop explores various concise and useful constructs for working with bash shell. The goal is to improve your shell skills. Attending this class requires some basic GNU/Linux command line experience.
Format: In-person and On-line (zoom)
Location: SciNet Teaching Room, 11th floor on the MaRS West tower, 661 University Ave., Suite 1140, Toronto, ON M5G 1M1
Time: 1:00 pm - 4:00 pm EST
This six-week class will introduce neural network programming concepts, theory and techniques. The class material will begin at an introductory level, intended for those with no experience with neural networks, eventually covering intermediate-to-advanced concepts. The programming language will be Python 3.9; experience with Python programming will be assumed. The Keras neural network framework will be used for neural network programming; no experience with Keras will be expected. Lectures will be 11:00am - 12:00pm, Tuesday and Thursdays.
Format: In-person, but lectures will be recorded.
In about 90 minutes, learn how to use the SciNet systems Niagara and Mist, from securely logging in to running computations on the supercomputer. Experienced users may still pick up some valuable pointers.
Format: In-person, as well as broadcast and recorded.
In this workshop, you will learn advanced MPI techniques such as MPI Datatypes, application topology and MPI-IO in the context of a scientific MPI example.
Principles and uses of relational databases with practical examples using python and sqlite on the Niagara supercomputer.
Format: In-person, but will also be broadcast and recorded.
In about 90 minutes, learn how to use the SciNet systems Niagara and Mist, from securely logging in to running computations on the supercomputer. Experienced users may still pick up some valuable pointers.
Format: In-person, as well as broadcast and recorded.
This week's colloquium: "Data Preparation" by Shadi Khalifa from CAC. The Compute Ontario Colloquia are weekly Zoom presentations on Advanced Research Computing, High Performance Computing, Research Data Management, and Research Software topics, delivered by staff from three Compute Ontario consortia (CAC, SciNet, SHARCNET) and guest speakers. The colloquia are one hour long and include time for questions. No registration is required.
In about 90 minutes, learn how to use the SciNet systems Niagara and Mist, from securely logging in to running computations on the supercomputer. Experienced users may still pick up some valuable pointers.
Format: online only
Learn how to write bash scripts, use environment variables, how to control process, and much more. Requires some linux basic command line experience.
Format: In-person, but will also be broadcast and recorded.
The Compute Ontario Colloquia are weekly Zoom presentations on Advanced Research Computing, High Performance Computing, Research Data Management, and Research Software topics, delivered by staff from three Compute Ontario consortia (CAC, SciNet, SHARCNET) and guest speakers. The colloquia are one hour long and include time for questions. No registration is required. Most presentations are recorded and uploaded to the hosting consortium video channel.
This week's colloquium: "Accelerated DataFrame with Dask-cuDF on multiple GPUs" by Jinhui Qin from SHARCNET.
The Compute Ontario Colloquia are weekly Zoom presentations on Advanced Research Computing, High Performance Computing, Research Data Management, and Research Software topics, delivered by staff from three Compute Ontario consortia (CAC, SciNet, SHARCNET) and guest speakers. The colloquia are one hour long and include time for questions. No registration is required. Most presentations are recorded and uploaded to the hosting consortium video channel.
An overview of GPUs and their use in supercomputers. This workshop will explain what GPUs are, and cover the basic ideas of GPU use in scientific computing. We will introduce several GPU programming frameworks, and demonstrate how to accelerate a solution of a science problem using a GPU. Python or C++ could be used for the assignment.
Format: In person, but also broadcast.

This week's colloquium: "Making Use of SIMD Vectorisation to Improve Code Performance" by James Willis from SciNet.
The Compute Ontario Colloquia are weekly Zoom presentations on Advanced Research Computing, High Performance Computing, Research Data Management, and Research Software topics, delivered by staff from three Compute Ontario consortia (CAC, SciNet, SHARCNET) and guest speakers. The colloquia are one hour long and include time for questions. No registration is required. Most presentations are recorded and uploaded to the hosting consortium video channel.
Windows Subsystem for Linux (WSL) is Microsoft's implementation of Linux container on Windows. WSL allows users to run various Linux distributions inside Windows and provides fully functional Linux environments for routine tasks. This course explores the usage of WSL and Docker Desktop on Windows.
Format: In-person
This week's colloquium: "An introduction to MPLAPACK, a multi-precision linear algebra library" by Ge Baolai from SHARCNET.
The Compute Ontario Colloquia are weekly Zoom presentations on Advanced Research Computing, High Performance Computing, Research Data Management, and Research Software topics, delivered by staff from three Compute Ontario consortia (CAC, SciNet, SHARCNET) and guest speakers. The colloquia are one hour long and include time for questions. No registration is required. Most presentations are recorded and uploaded to the hosting consortium video channel.
In about 90 minutes, learn how to use the SciNet systems Niagara and Mist, from securely logging in to running computations on the supercomputer. Experienced users may still pick up some valuable pointers.
Format: In person, as well as broadcast and recorded.
In this course students will be instructed in how to program in R. Ultimately students will learn how to use R to analyze, process and visualize data. This course is designed for students with little to no experience in programming.
This is a graduate course that can be taken for credit by UofT Biochemistry graduate students. Those students should enrol using ACORN/ROSI.
This week's colloquium: "File Management - Packing Small Files" by Ching-Hsing Yu from SciNet. The Compute Ontario Colloquia are weekly Zoom presentations on Advanced Research Computing, High Performance Computing, Research Data Management, and Research Software topics, delivered by staff from three Compute Ontario consortia (CAC, SciNet, SHARCNET) and guest speakers. The colloquia are one hour long and include time for questions. No registration is required.

This week's colloquium: "How Research Data Management (RDM) Intersects with ARC and Why Should I Care?" by Jeff Moon from Compute Ontario.
The Compute Ontario Colloquia are weekly Zoom presentations on Advanced Research Computing, High Performance Computing, Research Data Management, and Research Software topics, delivered by staff from three Compute Ontario consortia (CAC, SciNet, SHARCNET) and guest speakers. The colloquia are one hour long and include time for questions. No registration is required. Most presentations are recorded and uploaded to the hosting consortium video channel.

C++ is a high level programming language that is extremely useful for scientific applications. The language has historically had a bad reputation, but modern C++ is much improved so that your code can be relatively short and elegant. In this workshop we will teach the basics of C++ for people who are familiar with the basics of programming, and we will especially compare and contrast C++ with Python (only the material covered in SCMP142 "Intro to Programming with Python" is required). Knowing multiple programming languages may be a useful skill: while Python is a wonderful programming language, execution speed is often a practical issue for pure Python applications. For applications where this is an issue, coding in C++ can significantly improve performance. As C++ can relatively easily be integrated in a Python project, it is also possible (and common) to code just the bottleneck in that language.
Format: In-person, but also will be broadcast and recorded.

This week's colloquium: "A comparison of neural network frameworks" by Erik Spence from SciNet.
The Compute Ontario Colloquia are weekly Zoom presentations on Advanced Research Computing, High Performance Computing, Research Data Management, and Research Software topics, delivered by staff from three Compute Ontario consortia (CAC, SciNet, SHARCNET) and guest speakers. The colloquia are one hour long and include time for questions. No registration is required. Most presentations are recorded and uploaded to the hosting consortium video channel.
Working with many of the HPC systems (like those at SciNet) involves using the Linux/UNIX command line. This provides a very powerful interface, but it can be quite daunting for the uninitiated. In this half-day session, you can become initiated with this coursse which will cover basic commands. It could be a great boon for your productivity.
Format: In person, but also broadcast and recorded.
This week's colloquium: "Performance: current and upcoming systems" by Mark Hahn from SHARCNET.
The Compute Ontario Colloquia are weekly Zoom presentations on Advanced Research Computing, High Performance Computing, Research Data Management, and Research Software topics, delivered by staff from three Compute Ontario consortia (CAC, SciNet, SHARCNET) and guest speakers. The colloquia are one hour long and include time for questions. No enrollment or registration is required. Most presentations are recorded and uploaded to the hosting consortium video channel.
In about 90 minutes, learn how to use the SciNet systems Niagara and Mist, from securely logging in to running computations on the supercomputer. Experienced users may still pick up some valuable pointers.
Format: In-person as well as broadcast and recorded.
In this course data analysis techniques utilizing the Python and R languages will be introduced, as well as the basics of programming and scientific computing. The goal of this course is to prepare graduate students for performing scientific data analysis. Successful students will learn how to use statistical inference tools to gain insight into large and small data sets, as well as be exposed to cutting-edge techniques and best practises to store, manage and analyze (large) data. Topics include: Python and R programming, version control, automation, modular programming and scientific visualization.
Students willing to take the course as part of their graduate program must enrol through Acorn/ROSI.
This course is aimed at reducing your struggle in getting started with computational projects, and make you a more efficient computational scientist. Topics include well-established best practices for developing software as it applies to scientific computations, common numerical techniques and packages, and aspects of high performance computing. While we will introduce the C++ language, in one language or another, students should already have some programming experience. Despite the title, this course is suitable for many physical scientists (chemists, astronomers, ...).
This is a graduate course that can be taken for graduate credit by UofT PhD and MSc students. Students that wish to do so, should enrol using ACORN/ROSI.
In about 90 minutes, learn how to use the SciNet systems Niagara and Mist, from securely logging in to running computations on the supercomputer. Experienced users may still pick up some valuable pointers.
Format: In-person as well as broadcast and recorded.
Working with Advanced Research Computing and High Performance Computing systems involves using the Linux command line. This workshop will cover Linux commands to improve your productivity on the command line.
Format: In person, but also broadcast and recorded.
Managing large amounts of data can be a challenging task. Processing large numbers of files incur heavy overhead of IO communications. This course explores several options such as using Apptainer Overlay and SQLite to pack and reduce a large number of files to few files, and hence, improving IO performance. Python scripts are used throughout the course.
Format: On-line (Zoom).
Using version control for your scripts, codes, documents, papers, and even data, allows you to track changes, keep backups, and facilitate collaboration. In this workshop, you will learn the basics of version control with the popular distributed version control software GIT. This workshop assumes that students have an understanding of basic Linux shell commands.
Format: In-person, but also will be broadcast and recorded.
Learn the basics of Message Passing Interface (MPI) programming. Examples and exercises will be based on parallelization of common scientific computing problems.
Format: Online (Zoom)
Format: Online Zoom Meeting
In three sessions over the course of one week, we will cover different aspects of cybersecurity to help you enable your research! We will explore cybersecurity concepts, cyberattack models, as well as best practices to protect your research. We will talk about cryptography and apply the concept to a real life scenario via SSH keys. Finally, we will approach cybersecurity in the context of the Research Ethics Board. This session will be a mix of theory and practical exercises. We hope you will learn something new and, most importantly, enjoy the sessions!
The format is virtual, but for the second session there is the option to attend in person in the SciNet Boardroom to get in-person help with setting up ssh key authentication.
Working with many of the HPC systems (like those at SciNet) involves using the Linux/UNIX command line. This provides a very powerful interface, but it can be quite daunting for the uninitiated. In this half-day session, you can become initiated with this coursse which will cover basic commands. It could be a great boon for your productivity.
Format: In person, but also broadcast and recorded.
In about 90 minutes, learn how to use the SciNet systems Niagara and Mist, from securely logging in to running computations on the supercomputer. Experienced users may still pick up some valuable pointers.
Format: In-person, as well as broadcast and recorded.
New to programming? Learn the basics of programming using python in eight one-hour sessions over the course of four weeks. Sessions will consist of a mix of lectures and hands-on exercises.
Format: In-person. Sessions will be recorded.
Container computing is gradually changing the way researchers are developing, sharing, and running software applications. Apptainer (formerly called Singularity) is gaining popularity in HPC for its performance, ease of use, portability, and security. In this course, we will explore: what is a container, why use a container, and how to use and create one.
Format: On-line (Zoom).
In about 90 minutes, learn how to use the SciNet systems Niagara and Mist, from securely logging in to running computations on the supercomputer. Experienced users may still pick up some valuable pointers.
Format: Online
The goal of this course is to prepare graduate students to perform scientific data analysis using the R programming language. Successful students will learn how to use statistical inference and machine-learning tools to gain insight into data sets, as well as be introduced to techniques and best practises for storing, managing and analyzing data. Topics will include: R programming, version control, modular programming, coding best practices, data analysis, machine learning and scientific visualization.
Classes will be held Tuesdays and Thursdays, 9:00-10:30am, in GB244 and BL205, respectively.
Students willing to take the course as part of their graduate program must enrol through Acorn. This course is part of the IMS graduate program.
This course will provide an introduction to the theory, formalisms and algorithms of quantum computing. The programming language will be Python; experience with Python will be assumed. Experience with quantum mechanics is not necessary; an introductory-level understanding of linear algebra will be assumed. The PennyLane quantum-computing programming framework (installation instructions here), provided by Xanadu, will be used. No experience with quantum computing will be expected. Classes will be held, July 25, 27, 29, 12:30-3:30pm, in the SciNet Teaching room. Update: due to technical problems with the SciNet Teaching room, this class will be moved to the SciNet Boardroom.
Monthly SciNet user meetings, now virtual, with user discussion and a TechTalk. The topic on May 11th, 2022 will be "Modern C++", by Yohai Meiron.
Abstract: C++ has existed for four decades, but has gone through especially significant changes in the 2010s with the advent of the Standard C++11 and beyond. We'll demonstrate some of the new language features, as well as the workflow and tools that make C++ an important programming language for scientific computing, and a lot of fun!

A quick introduction on how to use SciNet and the Niagara and Mist supercomputers.

This six-week class will introduce neural network programming concepts, theory and techniques. The class material will begin at an introductory level, intended for those with no experience with neural networks, eventually covering intermediate-to-advanced concepts. The programming language will be Python 3.9; experience with Python programming will be assumed. The Keras neural network framework will be used for neural network programming; no experience with Keras will be expected. Lectures will be 11:00am - 12:00pm, Tuesday and Thursdays.