Description: This course introduces Artificial Intelligence (AI), a science focusing on developing intelligent systems capable of autonomous behavior. In this course, we explore the exciting world of AI, introducing its definition and history. We discuss the advantages and challenges of AI at present, along with various applications and projects that demonstrate its capabilities. Throughout the session, participants will gain insights into different types of AI, learn about running predefined projects, and discover AI showcases on various platforms. By the end of the course, participants will have the knowledge and resources to start their own AI projects with their data and explore the latest AI advancements.

Teacher: Nastaran Shahparian (SHARCNET, York University)

Level: Introductory

Format: Lecture

Certificate: Completion

Prerequisite: Basic Python knowledge and know-how is beneficial but not required.

Description: Accessing High Performance Computing (HPC) resources via terminal-based interfaces can be quite challenging for new users with limited experience, resulting in a steep learning curve. Open OnDemand aims to make HPC more accessible by offering an intuitive graphical interface that simplifies the process of submitting, monitoring, and managing jobs. In this course we will explore the key features of Trillium & Nibi's Open OnDemand portal, including web-based access, job management, file management and support for 
interactive applications like Jupyter Notebooks, RStudio, and VS Code.

Teachers: James Willis (SciNet, University of Toronto), Tyson Whitehead (SHARCNET, University of Western Ontario)

Level: Introductory

Format: Lecture+Hands-on

Certificate: Attendance

Prerequisites: None

Description: This workshop is a primer for those largely new to supercomputing, i.e., to computing on shared, remote resources. It is intended to demystify the somewhat intimidating term "High-Performance Computing" (HPC), and to serve as a foundation upon which to build over the coming days. Topics will include motivation for HPC, available resources, essential issues, and a high level overview of parallel programming models commonly used on these systems.

Teacher: Ramses van Zon (SciNet, University of Toronto)

Level: Introductory

Format: Lecture + Hands-on

Certificates: Completion

Prerequisite: Basic Linux command line skills

Description: C is a compiled language which gives the programmer low-level access to memory and language constructs that map efficiently to machine instructions.  In the hands of a knowledgeable programmer it can produce very efficient code, and it supports the MPI, OpenMP, and OpenACC parallel programming standards, so it is widely used in HPC. The aim of this course is to help you understand existing C code so that you can modify, extend, or debug it.  This introduction may also be helpful if you intend to learn C++ since the two languages are closely related.

Teacher: Ross Dickson (ACENET, Dalhousie University)

Level: Introductory

Format: Lecture

Certificate: Attendance

Prerequisites: Prior experience with some other programming language and familiarity with the Linux command line

Description: This course is an introduction to the unix bash shell. It starts at the very basics, but works up to cover reasonably advanced topics like regular expressions and shell scripting. Knowing how to use the shell is an essential part of using the supercomputers and extremely useful for automating your processing.

Teacher: Tyson Whitehead (SHARCNET, Western University)

Level: Introductory

Format: Lecture + Exercises with Questions

Certificate: Completion

Prerequisites: None

Description: This course is designed to provide you with a solid foundation in Python programming language. Through a comprehensive curriculum and hands-on coding exercises, participants will learn the fundamentals of Python syntax, data types, functions, and file handling. By the end of the course, you will have gained the essential skills to write Python programs, solve problems, and build the foundation for more advanced Python development. Whether you are a beginner or have some programming experience, this course will equip you with the necessary tools to start your journey in Python programming.

Teacher: Fernando Hernandez Leiva (CAC: Queen's University)

Level: Introductory

Format: Workshop

Certificate: Completion

Prerequisite: An account (free) on https://replit.com/. The course is delivered using a free online tool to let us focus on coding.

Description: Are you not sure which workshops to sign up for in this Summer School? In this session, we will give an overview of the program of the Compute Ontario Summer School to help you decide. We'll also show you what other training opportunity in Advanced Research Computing and Research Data Management are available for you in Canada after the summer school.

Teacher: Ramses van Zon (SciNet, University of Toronto)

Level: Introductory

Format: Webinar

Certificate: Attendance

Prerequisites: None

Description: This lab discusses profiling using NVIDIA Nsight Systems to understand and optimize performance on deep learning training - here we will use a very simple example based on handwritten digits using a PyTorch Modified National Institute of Standards and Technology (MNIST) dataset. The techniques and strategies apply to any optimizing any application that uses NVIDIA GPUs.

NOTE: This course will not be recorded and is limited to 30 persons.

Teachers: Jonathan Dursi (NVIDIA)

Level: Intermediate

Format: Lecture + Hands-on

Certificate: Completion

Prerequisites: Attendees should have some familiarity with running DNN training jobs on GPUs.