Events

Refresh calendars Add to google calendar
March,2024
4 Mar 1:00 pm 2:30 pm

Intro to OpenMP

Learn the basics of shared memory programming with OpenMP. In particular, we will discuss the OpenMP execution and memory model, performance, reductions and load balancing.Format: Virtual Virtual
HPC113 - Mar 2024Show in Google map
5 Mar 10:00 am 12:00 pm

EES1137: Lecture 15

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.
UTSC: AA207
EES1137 - Winter 2024Show in Google map
5 Mar 11:00 am 12:00 pm

PHY1610 Scientific Computing Lecture

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.This is an in-person course.
PHY1610 - Winter 2024
6 Mar 11:00 am 12:00 pm

Intro to Python for Biochemistry

In this course students will be instructed in how to program in Python. Ultimately students will learn how to use Python 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 by UofT Biochemistry graduate students. Those students should enrol using ACORN/ROSI.
BCH2203 - Winter 2024
7 Mar 11:00 am 12:00 pm

PHY1610 Scientific Computing Lecture

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.This is an in-person course.
PHY1610 - Winter 2024
7 Mar 11:00 am 12:00 pm

EES1137: Lecture 16

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.
UTSC: IC120
EES1137 - Winter 2024Show in Google map
11 Mar 9:00 am

2D diffusion equation is due

The assignment is to numerically solve the diffusion (heat) equation
in two dimensions, using GPU acceleration, in either Python or C++.

You can find serial, CPU-based solutions in both languages in the course’s source tarball.

If you choose Python, you can follow the instructions on the
appropriate slide in the handouts, titled Setting up the environment
(Python). If you want graphics on Mist, please also install the
matplotlib package in your Conda environment using conda install (no
need on Graham as the package is provided by the scipy-stack module).
You could modify the file diff2d.py such that the bulk of the
calculation (within the time loop) is done using the GPU. You can follow
the gravitational potential calculation example shown in class, Numba
and/or CuPy can be used in the solution. Note that the sample solution in Python is equivalent to the “naïve” solution for the gravitational potential problem, therefore very bad.

If you choose C++, we count on you being familiar with how to compile
source code. You could modify the file diff2d.cpp such that the bulk
of the calculation (within the time loop) is done using the GPU. On
both Mist and Graham, load the following modules: cuda, gcc, pgplot (you
may skip PGPLOT but then please remove the plotting calls from the main
source file and do not compile diff2dplot.cpp). If you choose to work
with HIP instead of CUDA, on Mist you can load the hip module in
addition to the cuda module (which is still necessary since HIP uses the
CUDA compiler under the hood when compiling for Nvidia GPUs). HIP is
not currently available on Graham, but you can try to install it locally
there.
The sample C++ code uses rarray,
you can install it locally or just pull the header.

The usual suffix of CUDA files is .cu and the nvcc command is used to
compile the source (instead of g++ for example). You can keep the .cpp
suffix, but then have to pass --x=cu to nvcc (this is not recommended for files that contains a kernel launch with triple angle brackets, as that is not legal C++ syntax). The usual suffix of HIP
files is just .cpp, and the hipcc command is used to compile. GPU kernels
can be in the same file where the main function is, as we saw in the
vector addition example, but in more complex applications the GPU code
(including kernel launches) would generally be separated out to one or more compilation units that
are linked to the rest of the code during the build process.
The Mist login node has four GPUs that can be used for the assignment, on Graham one has to submit a job to the scheduler. Unlike for submitted jobs, there is no guarantee that a GPU on the Mist login node would be free when you launch your application, as the node is shared by everyone. You could use the nvidia-smi command to see the current usage of the GPUs. By default, the first device (number 0) is used, but this behaviour can be change by setting an environment variable as shown below. For example, if you want to use device number 1:
CUDA_VISIBLE_DEVICES=1 python code.py
There are three “bonus” tasks that you can try for your own amusement (2 & 3 are beyond the scope of this workshop):

The smaller Δx, the more accurate and computationally heavy the solution. Plot the timing for your solution and of the serial CPU-based solution (and possibly improved CPU-based solutions) as a function of Δx.
Decompose the domain and solve the problem with multiple GPUs on the same node.
Use a distributed memory library to deploy your solution on multiple nodes.

Hint: for a single node you could use multiprocessing in Python and thread or OpenMP in C++.
For multiple nodes you could use mpi4py (Python) or MPI (C++).
HPC133 - Feb 2024
12 Mar 10:00 am 12:00 pm

EES1137: Lecture 17

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.
UTSC: AA207
EES1137 - Winter 2024Show in Google map
12 Mar 11:00 am 12:00 pm

PHY1610 Scientific Computing Lecture

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.This is an in-person course.
PHY1610 - Winter 2024
13 Mar 11:00 am 12:00 pm

Intro to Python for Biochemistry

In this course students will be instructed in how to program in Python. Ultimately students will learn how to use Python 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 by UofT Biochemistry graduate students. Those students should enrol using ACORN/ROSI.
BCH2203 - Winter 2024
13 Mar 1:00 pm 2:30 pm

Intro to Niagara

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: Virtual Virtual
HPC105 - Mar 2024Show in Google map
14 Mar 11:00 am 12:00 pm

PHY1610 Scientific Computing Lecture

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.This is an in-person course.
PHY1610 - Winter 2024
14 Mar 11:00 am 12:00 pm

EES1137: Lecture 18

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.
UTSC: IC120
EES1137 - Winter 2024Show in Google map
19 Mar 10:00 am 12:00 pm

EES1137: Lecture 19

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.
UTSC: AA207
EES1137 - Winter 2024Show in Google map
19 Mar 11:00 am 12:00 pm

PHY1610 Scientific Computing Lecture

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.This is an in-person course.
PHY1610 - Winter 2024
20 Mar 11:00 am 12:00 pm

Intro to Python for Biochemistry

In this course students will be instructed in how to program in Python. Ultimately students will learn how to use Python 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 by UofT Biochemistry graduate students. Those students should enrol using ACORN/ROSI.
BCH2203 - Winter 2024
21 Mar 11:00 am 12:00 pm

EES1137: Lecture 20

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.
UTSC: IC120
EES1137 - Winter 2024Show in Google map
21 Mar 11:00 am 12:00 pm

PHY1610 Scientific Computing Lecture

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.This is an in-person course.
PHY1610 - Winter 2024
25 Mar 1:00 pm 4:00 pm

Parallel Debugging with DDT

Debugging is an important step in developing a new code, or porting an old one to a new machine. In this session, we will discuss the debugging of frequently encountered bugs in serial code and debugging of parallel (MPI and threaded) codes using DDT. Virtual
HPC245 - Mar 2024Show in Google map
26 Mar 10:00 am 12:00 pm

EES1137: Lecture 21

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.
UTSC: AA207
EES1137 - Winter 2024Show in Google map
26 Mar 11:00 am 12:00 pm

PHY1610 Scientific Computing Lecture

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.This is an in-person course.
PHY1610 - Winter 2024
27 Mar 11:00 am 12:00 pm

Intro to Python for Biochemistry

In this course students will be instructed in how to program in Python. Ultimately students will learn how to use Python 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 by UofT Biochemistry graduate students. Those students should enrol using ACORN/ROSI.
BCH2203 - Winter 2024
28 Mar 11:00 am 12:00 pm

EES1137: Lecture 22

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.
UTSC: IC120
EES1137 - Winter 2024Show in Google map
28 Mar 11:00 am 12:00 pm

PHY1610 Scientific Computing Lecture

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.This is an in-person course.
PHY1610 - Winter 2024
April,2024
2 Apr 10:00 am 12:00 pm

EES1137: Lecture 23

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.
UTSC: AA207
EES1137 - Winter 2024Show in Google map
2 Apr 11:00 am 12:00 pm

PHY1610 Scientific Computing Lecture

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.This is an in-person course.
PHY1610 - Winter 2024
4 Apr 11:00 am 12:00 pm

EES1137: Lecture 24

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.
UTSC: IC120
EES1137 - Winter 2024Show in Google map
4 Apr 11:00 am 12:00 pm

PHY1610 Scientific Computing Lecture

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.This is an in-person course.
PHY1610 - Winter 2024
10 Apr 11:00 am 12:00 pm

Intro to Python for Biochemistry

In this course students will be instructed in how to program in Python. Ultimately students will learn how to use Python 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 by UofT Biochemistry graduate students. Those students should enrol using ACORN/ROSI.
BCH2203 - Winter 2024
10 Apr 1:00 pm 2:30 pm

Intro to Niagara

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: Virtual Virtual
HPC105 - Apr 2024Show in Google map
15 Apr 1:00 pm 4:00 pm

Shell Scripting

Learn how to write bash scripts, use environment variables, how to control process, and much more. Requires some Linux basic command line experience.Note: this event has been moved from April 8th to April 15th.Format: Virtual Virtual
SCMP201 - Apr 2024Show in Google map
17 Apr 12:00 pm 1:00 pm

CO Colloquium "How to Buy a Supercomputer for Scientific Computing"

Buying a new supercomputer that both maximises total performance, given our budget, and whose architecture suits our users' workloads is a very difficult balancing act. There are a wide range of decisions to be made, such as: CPU architecture; node count; memory size/bandwidth; GPU count; interconnect type; storage size; filesystem type/bandwidth; cooling type and power budget to name but a few. In order to balance all of these constraints we need to come up with a scoring system to compare potential candidate supercomputers. In this talk we describe the Scalable System Improvement (SSI) metric and apply it to the system refresh of Niagara & Mist. Virtual
COCO - 17 Apr 2024Show in Google map
23 Apr 11:00 am 12:00 pm

DAT112: Lecture 1

Introduction to neural network programming, lecture 1
DAT112 - Apr 2024
25 Apr 11:00 am 12:00 pm

DAT112: Lecture 2

Introduction to neural network programming, lecture 2
DAT112 - Apr 2024
30 Apr 11:00 am 12:00 pm

DAT112: Lecture 3

Introduction to neural network programming, lecture 3
DAT112 - Apr 2024
May,2024
2 May 11:00 am 12:00 pm

DAT112: Lecture 4

Introduction to neural network programming, lecture 4
DAT112 - Apr 2024
7 May 11:00 am 12:00 pm

DAT112: Lecture 5

Introduction to neural network programming, lecture 5
DAT112 - Apr 2024
8 May 1:00 pm 2:30 pm

Intro to Niagara

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: Virtual Virtual
HPC105 - May 2024Show in Google map
9 May 11:00 am 12:00 pm

DAT112: Lecture 6

Introduction to neural network programming, lecture 6
DAT112 - Apr 2024
13 May 1:00 pm 4:00 pm

Relational Databases

Principles and uses of relational databases with practical examples using python and sqlite on the Niagara supercomputer.Prerequisites: Some Linux command line experience.  Python experience is strongly advised. Format: Virtual Virtual
SCMP231 - May 2024Show in Google map
14 May 11:00 am 12:00 pm

DAT112: Lecture 7

Introduction to neural network programming, lecture 7
DAT112 - Apr 2024
16 May 11:00 am 12:00 pm

DAT112: Lecture 8

Introduction to neural network programming, lecture 8
DAT112 - Apr 2024
21 May 11:00 am 12:00 pm

DAT112: Lecture 9

Introduction to neural network programming, lecture 9
DAT112 - Apr 2024
23 May 11:00 am 12:00 pm

DAT112: Lecture 10

Introduction to neural network programming, lecture 10
DAT112 - Apr 2024
27 May 1:00 pm 4:00 pm

Bash idioms, awk, etc.

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: Virtual
SCMP281 - May 2024
28 May 11:00 am 12:00 pm

DAT112: Lecture 11

Introduction to neural network programming, lecture 11
DAT112 - Apr 2024
30 May 11:00 am 12:00 pm

DAT112: Lecture 12

Introduction to neural network programming, lecture 12
DAT112 - Apr 2024
June,2024
3 Jun 9:00 am 12:00 pm

CO Summer School S1: Introduction to Linux shell (morning session)

Running programs on the supercomputers is done via the BASH shell. This course is two three hour live demos on using bash. No prior familiarity with bash is assumed. In addition to the basics of getting around, globbing, regular expressions, redirection, pipes, and scripting will be covered. A series of exercises are required to be done in order to complete the course. Level: Introductory Length: Two 3-Hour Sessions Format: Lecture + Hands-on Prerequisites: None (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
14 Jun 9:00 am 12:00 pm

CO Summer School S2: Data Preparation

This course provides you with essential knowledge and skills to effectively prepare data for analysis. Starting with an overview of the Data Analytics pipeline and processes, the course explores various statistical and visualization techniques used in Exploratory and Descriptive Analytics to understand historical data. You will then delve into the art of Data Preparation, gaining expertise in data cleaning, handling missing values, detecting, and handling outliers, as well as transforming and engineering features. By the end of the course, you will be equipped with the necessary tools to ensure data quality and integrity, enabling you to make informed decisions and derive valuable insights from their data. Level: Introductory Length: 3 Hours Format: Lecture + Hands-on Prerequisites: Basic Python (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
14 Jun 9:00 am 12:00 pm

CO Summer School S2: Artificial Neural Networks aka Deep Learning (session 3/4)

NOTE: This course is divided into four (4) parts over three (3) days. Part I and Part II Description: Introduction of 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 concepts. (The Keras neural network framework will be used for neural network programming but no experience with Keras will be expected.) Part III Description: This part will continue the development of neural network programming approaches from Parts I and II. This part will focus on generative methods used to create images: variational auto-encoders, generative adversarial networks, and diffusion networks. Part IV Description: This part will continue the development of neural network programming approaches from Parts I through III. This part will focus on methods used to generate sequences: LSTM networks, sequence-to-sequence networks, and transformers. Level: Intermediate Length: Four 3-Hour Sessions (3 Days) Format: Lecture + Hands-on Prerequisites: Experience with Python (version 3.10) is assumed. Each part assumes what was covered in the previous parts of this course. Parts III and IV assume experience with neural network programming, per the first two neural network programming sessions in this course. (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
14 Jun 1:30 pm 4:30 pm

CO Summer School S1: Leveraging HPC for Computational Fluid Dynamics (session 3/3)

This course is intended to help learners with a basic understanding of fluid dynamics and CFD bridge the knowledge gap towards the effective utilization of CFD on modern HPC architectures. This course will take an end-user approach to CFD tools on HPC systems (no coding) and, despite some prerequisites, will be given at an introductory/intermediate level (we will not cover advanced topics such as GPU or dynamic load-balancing). At the end of the course, the learner will be able to: Develop a systematic approach to estimate the HPC cost of a CFD problem. Explain the impact of modelling assumptions on HPC cost. Optimize the parameters and simulations for effective HPC usage. The course will use an entirely open source suite of CFD toolsets to mesh (Gmsh), simulate (OpenFoam/SU2), and visualize (Visit/Paraview). It should be noted that this is not a CFD course; therefore, undergraduate-level knowledge of CFD and numerical methods is expected, as well as a basic understanding of the Compute Ontario HPC system. The focus is on the effective use of CFD tools in modern HPC systems. Level: Intermediate, Length: Three 1-Hour Sessions (3 Days), Format: Lecture + Hands-on, Prerequisites: Undergraduate-level knowledge of fluid dynamics (ideally with some knowledge of turbulence), CFD, and numerical methods. (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
14 Jun 1:30 pm 4:30 pm

CO Summer School S2: Artificial Neural Networks aka Deep Learning (session 4/4)

NOTE: This course is divided into four (4) parts over three (3) days. Part I and Part II Description: Introduction of 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 concepts. (The Keras neural network framework will be used for neural network programming but no experience with Keras will be expected.) Part III Description: This part will continue the development of neural network programming approaches from Parts I and II. This part will focus on generative methods used to create images: variational auto-encoders, generative adversarial networks, and diffusion networks. Part IV Description: This part will continue the development of neural network programming approaches from Parts I through III. This part will focus on methods used to generate sequences: LSTM networks, sequence-to-sequence networks, and transformers. Level: Intermediate Length: Four 3-Hour Sessions (3 Days) Format: Lecture + Hands-on Prerequisites: Experience with Python (version 3.10) is assumed. Each part assumes what was covered in the previous parts of this course. Parts III and IV assume experience with neural network programming, per the first two neural network programming sessions in this course. (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
17 Jun 9:00 am 12:00 pm

CO Summer School S2: High Performance Computing in Python (morning session)

Learn how to improve the performance and use parallel programming in Python. We will cover profiling, subprocess, numexpr, multiprocessing, MPI, and other performance enhancing techniques. Level: Intermediate Length: Two 3-Hour Sessions Format: Lecture + Hands-on Prerequisite: Some Python and Linux command line experience. (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
17 Jun 9:00 am 12:00 pm

CO Summer School S1: GPU programming: CUDA (day 1, morning session)

This is an introductory course covering programming and computing on GPUs - graphics processing units - which are an increasingly common presence in massively parallel computing architectures. The basics of GPU programming will be covered, and students will work through a number of hands on examples. The structuring of data and computations that makes full use of the GPU will be discussed in detail. Students should be able to leave the course with the knowledge necessary to begin developing their own GPU applications. Level: Introductory Length: Six 3-Hour Sessions (3 Days) Format: Lecture + Hands-on Prerequisites: Alliance Account Basic C and/or C++ experience (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
17 Jun 1:30 pm 4:30 pm

CO Summer School S2: High Performance Computing in Python (afternoon session)

Learn how to improve the performance and use parallel programming in Python. We will cover profiling, subprocess, numexpr, multiprocessing, MPI, and other performance enhancing techniques. Level: Intermediate Length: Two 3-Hour Sessions Format: Lecture + Hands-on Prerequisite: Some Python and Linux command line experience. (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
17 Jun 1:30 pm 4:30 pm

CO Summer School S1: GPU programming: CUDA (day 1, afternoon session)

This is an introductory course covering programming and computing on GPUs - graphics processing units - which are an increasingly common presence in massively parallel computing architectures. The basics of GPU programming will be covered, and students will work through a number of hands on examples. The structuring of data and computations that makes full use of the GPU will be discussed in detail. Students should be able to leave the course with the knowledge necessary to begin developing their own GPU applications. Level: Introductory Length: Six 3-Hour Sessions (3 Days) Format: Lecture + Hands-on Prerequisites: Alliance Account Basic C and/or C++ experience (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
18 Jun 9:00 am 12:00 pm

CO Summer School S1: GPU programming: CUDA (day 2, morning session)

This is an introductory course covering programming and computing on GPUs - graphics processing units - which are an increasingly common presence in massively parallel computing architectures. The basics of GPU programming will be covered, and students will work through a number of hands on examples. The structuring of data and computations that makes full use of the GPU will be discussed in detail. Students should be able to leave the course with the knowledge necessary to begin developing their own GPU applications. Level: Introductory Length: Six 3-Hour Sessions (3 Days) Format: Lecture + Hands-on Prerequisites: Alliance Account Basic C and/or C++ experience (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
18 Jun 9:00 am 12:00 pm

CO Summer School S2: Modern C++ Parallel Programming (day 1, morning session)

Modern C++ is an efficient, versatile programming language. This workshop will focus on the following in both sequential and parallel contexts: using pseudo-random number generators, making use of reduction options using underlying sequential code, making simple use of in-situ code benchmarking/profiling, and, using mdspan for accessing multi-dimensional arrays and multi-dimensional array slices (submdspan). By the end of these sessions, one will have learnt about sequential and parallel uses of: C++ pseudo-random number generators and their use, C++ std::reduce(), std::transform_reduce(), etc. and C++ parallel algorithms and some of their uses and caveats, using std::chrono facilities, e.g., for in-situ benchmarks, and, how to use multi-dimensional arrays and slices in C++ code. Level: Intermediate Length: Four 3-Hour Sessions (2 Days) Format: Lecture + Hands-on Prerequisites: Experience developing sequential code in C++. (The C++ programming language is not the C programming language. Experience is expected programming in C++, e.g., using the standard library's containers, iterators, and algorithms.) (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
18 Jun 1:30 pm 4:30 pm

CO Summer School S2: Modern C++ Parallel Programming (day 1, afternoon session)

Modern C++ is an efficient, versatile programming language. This workshop will focus on the following in both sequential and parallel contexts: using pseudo-random number generators, making use of reduction options using underlying sequential code, making simple use of in-situ code benchmarking/profiling, and, using mdspan for accessing multi-dimensional arrays and multi-dimensional array slices (submdspan). By the end of these sessions, one will have learnt about sequential and parallel uses of: C++ pseudo-random number generators and their use, C++ std::reduce(), std::transform_reduce(), etc. and C++ parallel algorithms and some of their uses and caveats, using std::chrono facilities, e.g., for in-situ benchmarks, and, how to use multi-dimensional arrays and slices in C++ code. Level: Intermediate Length: Four 3-Hour Sessions (2 Days) Format: Lecture + Hands-on Prerequisites: Experience developing sequential code in C++. (The C++ programming language is not the C programming language. Experience is expected programming in C++, e.g., using the standard library's containers, iterators, and algorithms.) (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
18 Jun 1:30 pm 4:30 pm

CO Summer School S1: GPU programming: CUDA (day 2, afternoon session)

This is an introductory course covering programming and computing on GPUs - graphics processing units - which are an increasingly common presence in massively parallel computing architectures. The basics of GPU programming will be covered, and students will work through a number of hands on examples. The structuring of data and computations that makes full use of the GPU will be discussed in detail. Students should be able to leave the course with the knowledge necessary to begin developing their own GPU applications. Level: Introductory Length: Six 3-Hour Sessions (3 Days) Format: Lecture + Hands-on Prerequisites: Alliance Account Basic C and/or C++ experience (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
19 Jun 9:00 am 12:00 pm

CO Summer School S1: GPU programming: CUDA (day 3, morning session)

This is an introductory course covering programming and computing on GPUs - graphics processing units - which are an increasingly common presence in massively parallel computing architectures. The basics of GPU programming will be covered, and students will work through a number of hands on examples. The structuring of data and computations that makes full use of the GPU will be discussed in detail. Students should be able to leave the course with the knowledge necessary to begin developing their own GPU applications. Level: Introductory Length: Six 3-Hour Sessions (3 Days) Format: Lecture + Hands-on Prerequisites: Alliance Account Basic C and/or C++ experience (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
19 Jun 9:00 am 12:00 pm

CO Summer School S2: Scientific visualization (morning session)

During this workshop, we will learn about matplotlib which is a popular Python library that is great for 2D visualizations, and ParaView, a free and open-source visualization tool for creating 3D visualizations of your datasets. In this interactive workshop you will get familiar with how ParaView works and at the end you should be able to generate basic visualizations of the demo data. Level: Introductory Length: Two 3-Hour Sessions Format: Lecture + Hands-on Prerequisites: None (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
19 Jun 1:30 pm 4:30 pm

CO Summer School S1: GPU programming: CUDA (day 3, afternoon session)

This is an introductory course covering programming and computing on GPUs - graphics processing units - which are an increasingly common presence in massively parallel computing architectures. The basics of GPU programming will be covered, and students will work through a number of hands on examples. The structuring of data and computations that makes full use of the GPU will be discussed in detail. Students should be able to leave the course with the knowledge necessary to begin developing their own GPU applications. Level: Introductory Length: Six 3-Hour Sessions (3 Days) Format: Lecture + Hands-on Prerequisites: Alliance Account Basic C and/or C++ experience (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
19 Jun 1:30 pm 4:30 pm

CO Summer School S2: Scientific visualization (afternoon session)

During this workshop, we will learn about matplotlib which is a popular Python library that is great for 2D visualizations, and ParaView, a free and open-source visualization tool for creating 3D visualizations of your datasets. In this interactive workshop you will get familiar with how ParaView works and at the end you should be able to generate basic visualizations of the demo data. Level: Introductory Length: Two 3-Hour Sessions Format: Lecture + Hands-on Prerequisites: None (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
20 Jun 9:00 am 12:00 pm

CO Summer School S2: Modern C++ Parallel Programming (day 2, morning session)

Modern C++ is an efficient, versatile programming language. This workshop will focus on the following in both sequential and parallel contexts: using pseudo-random number generators, making use of reduction options using underlying sequential code, making simple use of in-situ code benchmarking/profiling, and, using mdspan for accessing multi-dimensional arrays and multi-dimensional array slices (submdspan). By the end of these sessions, one will have learnt about sequential and parallel uses of: C++ pseudo-random number generators and their use, C++ std::reduce(), std::transform_reduce(), etc. and C++ parallel algorithms and some of their uses and caveats, using std::chrono facilities, e.g., for in-situ benchmarks, and, how to use multi-dimensional arrays and slices in C++ code. Level: Intermediate Length: Four 3-Hour Sessions (2 Days) Format: Lecture + Hands-on Prerequisites: Experience developing sequential code in C++. (The C++ programming language is not the C programming language. Experience is expected programming in C++, e.g., using the standard library's containers, iterators, and algorithms.) (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
20 Jun 9:00 am 12:00 pm

CO Summer School S1: Databases and SQL (day 1, morning session)

In our digitally-driven world, databases are the cornerstone of virtually every online service and application. They help store your favourite songs on music platforms, track orders on shopping sites, and keep your personal information safe and sound. These incredible systems are the backbone of our digital universe, silently and efficiently managing the vast oceans of data that flow through our daily lives. From the social media sites we share with our friends to the online transactions that make our lives easier, databases are the unsung heroes, diligently organizing, storing, and retrieving information with remarkable precision. Whether you're a technical professional or just beginning to explore data management, the journey into the realm of databases is both enlightening and rewarding, offering endless opportunities for discovery and innovation. Together, we will explore the secrets that make our connected world tick. Level: Introductory Length: Four 3-Hour Sessions (2 Days) Format: Lecture+Hands-on Prerequisites: Basic programming knowledge Installation of MySQL on one's personal computer (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
20 Jun 1:30 pm 4:30 pm

CO Summer School S1: Databases and SQL (day 1, afternoon session)

In our digitally-driven world, databases are the cornerstone of virtually every online service and application. They help store your favourite songs on music platforms, track orders on shopping sites, and keep your personal information safe and sound. These incredible systems are the backbone of our digital universe, silently and efficiently managing the vast oceans of data that flow through our daily lives. From the social media sites we share with our friends to the online transactions that make our lives easier, databases are the unsung heroes, diligently organizing, storing, and retrieving information with remarkable precision. Whether you're a technical professional or just beginning to explore data management, the journey into the realm of databases is both enlightening and rewarding, offering endless opportunities for discovery and innovation. Together, we will explore the secrets that make our connected world tick. Level: Introductory Length: Four 3-Hour Sessions (2 Days) Format: Lecture+Hands-on Prerequisites: Basic programming knowledge Installation of MySQL on one's personal computer (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
20 Jun 1:30 pm 4:30 pm

CO Summer School S2: Modern C++ Parallel Programming (day 2, afternoon session)

Modern C++ is an efficient, versatile programming language. This workshop will focus on the following in both sequential and parallel contexts: using pseudo-random number generators, making use of reduction options using underlying sequential code, making simple use of in-situ code benchmarking/profiling, and, using mdspan for accessing multi-dimensional arrays and multi-dimensional array slices (submdspan). By the end of these sessions, one will have learnt about sequential and parallel uses of: C++ pseudo-random number generators and their use, C++ std::reduce(), std::transform_reduce(), etc. and C++ parallel algorithms and some of their uses and caveats, using std::chrono facilities, e.g., for in-situ benchmarks, and, how to use multi-dimensional arrays and slices in C++ code. Level: Intermediate Length: Four 3-Hour Sessions (2 Days) Format: Lecture + Hands-on Prerequisites: Experience developing sequential code in C++. (The C++ programming language is not the C programming language. Experience is expected programming in C++, e.g., using the standard library's containers, iterators, and algorithms.) (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
21 Jun 9:00 am 12:00 pm

CO Summer School S2: Bioinformatics - Introduction and Metagenomics (morning session)

Bioinformatics, the interdisciplinary field at the intersection of biology and computational science, has revolutionized our understanding of life processes. In this one-day course, we will first tune your HPC knowledge/skills towards bioinformatics computing. Then a typical metagenomics pipeline will be explored to introduce common tools used in bioinformatic analysis and to show how they can be run in an HPC environment. Join us for an immersive day of hands-on exploration in the captivating world of bioinformatics and metagenomics! Level: Introductory Length: Two 3-Hour Sessions Format: Lecture + Hands-on Prerequisites: Alliance Account Basic understanding of biology and familiarity with Unix shells (e.g. bash, zsh, etc.). (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
21 Jun 9:00 am 12:00 pm

CO Summer School S1: Databases and SQL (day 2, morning session)

In our digitally-driven world, databases are the cornerstone of virtually every online service and application. They help store your favourite songs on music platforms, track orders on shopping sites, and keep your personal information safe and sound. These incredible systems are the backbone of our digital universe, silently and efficiently managing the vast oceans of data that flow through our daily lives. From the social media sites we share with our friends to the online transactions that make our lives easier, databases are the unsung heroes, diligently organizing, storing, and retrieving information with remarkable precision. Whether you're a technical professional or just beginning to explore data management, the journey into the realm of databases is both enlightening and rewarding, offering endless opportunities for discovery and innovation. Together, we will explore the secrets that make our connected world tick. Level: Introductory Length: Four 3-Hour Sessions (2 Days) Format: Lecture+Hands-on Prerequisites: Basic programming knowledge Installation of MySQL on one's personal computer (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
21 Jun 1:30 pm 4:30 pm

CO Summer School S2: Bioinformatics - Introduction and Metagenomics (afternoon session)

Bioinformatics, the interdisciplinary field at the intersection of biology and computational science, has revolutionized our understanding of life processes. In this one-day course, we will first tune your HPC knowledge/skills towards bioinformatics computing. Then a typical metagenomics pipeline will be explored to introduce common tools used in bioinformatic analysis and to show how they can be run in an HPC environment. Join us for an immersive day of hands-on exploration in the captivating world of bioinformatics and metagenomics! Level: Introductory Length: Two 3-Hour Sessions Format: Lecture + Hands-on Prerequisites: Alliance Account Basic understanding of biology and familiarity with Unix shells (e.g. bash, zsh, etc.). (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map
21 Jun 1:30 pm 4:30 pm

CO Summer School S1: Databases and SQL (day 2, afternoon session)

In our digitally-driven world, databases are the cornerstone of virtually every online service and application. They help store your favourite songs on music platforms, track orders on shopping sites, and keep your personal information safe and sound. These incredible systems are the backbone of our digital universe, silently and efficiently managing the vast oceans of data that flow through our daily lives. From the social media sites we share with our friends to the online transactions that make our lives easier, databases are the unsung heroes, diligently organizing, storing, and retrieving information with remarkable precision. Whether you're a technical professional or just beginning to explore data management, the journey into the realm of databases is both enlightening and rewarding, offering endless opportunities for discovery and innovation. Together, we will explore the secrets that make our connected world tick. Level: Introductory Length: Four 3-Hour Sessions (2 Days) Format: Lecture+Hands-on Prerequisites: Basic programming knowledge Installation of MySQL on one's personal computer (part of the 2024 Compute Ontario Summer School) Virtual
COSS2024Show in Google map