High performance computing

Parallel computing courses

Courses tagged with "High performance computing"

Part of the 2017 Ontario Summer School.
Teacher: SciNet Team
Category: Data Science
Date: Wed., 26 Jul. 2017 - 1:30 pm
This half-day session will cover parallel programming in python with a focus on parallel data analysis. We will cover subprocess, multiprocessing and other parallel-enabling python packages.
Teacher: Bruno Mundim
Category: Data Science
Date: Wed., 13 Jun. 2018 - 9:30 am
This session will cover parallel programming in python, with a focus on parallel data analysis. We will cover subprocess, multiprocessing, pypar and other parallel-enabling python packages. Part of the 2015 Ontario HPC Summer School Central.
Teacher: SciNet Team
Category: Data Science
Date: Tue., 14 Jul. 2015 - 1:30 pm
This half-day session will cover parallel programming in python with a focus on parallel data analysis. We will cover subprocess, multiprocessing and other parallel-enabling python packages. -- Prerequisites: python programming and experience editing code in a Linux environment.
Teacher: SciNet Team
Category: Data Science
Date: Tue., 25 Jun. 2019 - 1:30 pm
This session will cover parallel programming R, with a focus on parallel data analysis. Topics covered include snow, parallel, and foreach/doparallel.
Teacher: SciNet Team
Category: Data Science
Date: Mon., 13 Jul. 2015 - 1:30 pm
Part of the 2016 Ontario Summer School, this half-day session will cover parallel programming R, with a focus on parallel data analysis. Topics covered include snow, parallel, and foreach/doparallel.
Teacher: SciNet Team
Category: Data Science
Date: Tue., 12 Jul. 2016 - 1:30 pm

Learn how to fully utilize the power of HPC. Discover proven strategies and tools to efficiently scale up from serial jobs to parallel runs across many compute nodes on Niagara.

Date: Mon., 28 Oct. 2024 - 1:00 pm
High Performance Computing Credits: 3

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.

Teacher: James Willis
Date: Mon., 28 Apr. 2025 - 1:00 pm
High Performance Computing Credits: 3

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

Date: Mon., 4 Mar. 2024 - 1:00 pm
High Performance Computing Credits: 3

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: Virtual

Teacher: Yohai Meiron
Start date: 26 Feb. 2024
End date: 1 Mar. 2024
High Performance Computing Credits: 6

Parallel programming in Python. We will cover subprocess, numexpr, multiprocessing, MPI, and other parallel-enabling python packages.

Format: Virtual

Date: Tue., 22 Apr. 2025 - 1:00 pm
High Performance Computing Credits: 3

Parallel programming in Python. We will cover subprocess, numexpr, multiprocessing, MPI, and other parallel-enabling python packages.

Format: Virtual

Date: Mon., 22 Jan. 2024 - 1:00 pm
High Performance Computing Credits: 3

Learn the basics of Message Passing Interface (MPI) programming. Examples and exercises will be based on parallelization of common scientific computing problems.

Format: Virtual

Teacher: Bruno Mundim
Start date: 4 Dec. 2023
End date: 8 Dec. 2023
High Performance Computing Credits: 4

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.

Teacher: Bruno Mundim
Start date: 15 May 2023
End date: 19 May 2023
High Performance Computing Credits: 4

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.

Date: Mon., 27 Mar. 2023 - 1:00 pm
High Performance Computing Credits: 3

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.

Teacher: Yohai Meiron
Start date: 21 Feb. 2023
End date: 24 Feb. 2023
High Performance Computing Credits: 6

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)

Teacher: Bruno Mundim
Start date: 21 Nov. 2022
End date: 25 Nov. 2022
High Performance Computing Credits: 4
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.
Teacher: Yohai Meiron
Start date: 4 Apr. 2022
End date: 15 Apr. 2022
High Performance Computing Credits: 6
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. Prior knowledge of programming (in any language) is recommended to be able to follow the exercise part of the workshop.
Teacher: Yohai Meiron
Date: Wed., 24 Nov. 2021 - 12:00 am
High Performance Computing Credits: 3

In this workshop, spread out over three days within one week, you will learn advanced MPI techniques such as MPI Datatypes, MPI-IO and one-sided communications.

Teacher: Bruno Mundim
Start date: 25 Oct. 2021
End date: 29 Oct. 2021
High Performance Computing Credits: 4

Learn the basics of Message Passing Interface (MPI) programming. Examples and exercises will be based on parallelization of common scientific computing problems.

Teacher: Bruno Mundim
Start date: 12 Jul. 2021
End date: 16 Jul. 2021
High Performance Computing Credits: 4

Parallel programming in Python. We will cover subprocess, numexpr,  multiprocessing, MPI, and other parallel-enabling python packages.

Start date: 9 Aug. 2021
End date: 13 Aug. 2021
High Performance Computing Credits: 4

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.

Start date: 16 Aug. 2021
End date: 20 Aug. 2021
High Performance Computing Credits: 4

Learn parallel programming in R, with a focus on parallel data analysis.  

Teacher: Marcelo Ponce
Start date: 23 Aug. 2021
End date: 27 Aug. 2021
High Performance Computing Credits: 2
Data Science Credits: 2

Debugging and profiling are important steps 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 with gdb and the debugging of parallel (MPI and threaded) codes.

Teacher: Erik Spence
Start date: 30 Aug. 2021
End date: 3 Sep. 2021
Scientific Computing Credits: 4
In this workshop, spread out over three days within one week, will cover parallel profiling, performance analysis, and tuning of applications.
Start date: 19 Oct. 2020
End date: 21 Oct. 2020
In this workshop, spread out over three days within one week, you will learn advanced MPI techniques such as MPI Datatypes, MPI-IO and one-sided communications.
Teacher: Bruno Mundim
Start date: 16 Nov. 2020
End date: 20 Nov. 2020
Learn parallel programming R, with a focus on parallel data analysis.
Teacher: Marcelo Ponce
Start date: 11 Aug. 2020
End date: 13 Aug. 2020
Parallel programming in Python with a focus on parallel data analysis. We will cover subprocess, multiprocessing and other parallel-enabling python packages.
Start date: 28 Jul. 2020
End date: 30 Jul. 2020
Learn the basics of Message Passing Interface (MPI) programming. Examples and exercises will be based on parallelization of common scientific computing problems.
Teacher: Bruno Mundim
Start date: 7 Jul. 2020
End date: 9 Jul. 2020
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.
Start date: 23 Jun. 2020
End date: 25 Jun. 2020
In this three-hour workshop, you will learn advanced MPI techniques such as MPI Datatypes, MPI-IO and one-sided communications.
Teacher: Bruno Mundim
Date: Mon., 6 Apr. 2020 - 1:00 pm
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. -- Prerequisites: C, C++ or Fortran programming, experience editing and compiling code in a Linux environment.
Date: Fri., 11 Oct. 2019 - 1:00 pm
Apply MPI to realistic scientific computing examples and learn to use advanced MPI techniques such as non-blocking communications.
Teacher: Bruno Mundim
Date: Mon., 3 Feb. 2020 - 1:00 pm
Learn the basics of Message Passing Interface (MPI) programming. Prerequisites: C/C++ or Fortran programming.
Teacher: Bruno Mundim
Date: Mon., 28 Oct. 2019 - 1:00 pm
The goal is for students, new to GPGPU but familiar with programming in C/C++, to leave being able to write simple kernels for their own problems, and understand the tools and techniques needed to improve the results.
Date: Mon., 25 Nov. 2019 - 1:00 pm
In this 1.5-day session, through lectures interspersed with hands-on labs, the students will learn the basics of Message Passing Interface (MPI) programming. Examples and exercises will be based on parallelization of common scientific computing problems. -- Prerequisites: C/C++ or Fortran programming.
Teacher: SciNet Team
Start date: 24 Jun. 2019
End date: 25 Jun. 2019
This is an introductory course covering programming and computing on GPUs (graphics processing unit) 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. This year the course will expand to cover the new features available on the GPUs installed on the Graham supercomputer at the University of Waterloo. Students should be able to leave the course with the knowledge necessary to begin developing their own GPU applications. -- Prerequisites: C/C++ scientific programming, experience editing and compiling code in a Linux environment. Some experience with CUDA and/or OpenMP a plus.
Teacher: SciNet Team
Start date: 26 Jun. 2019
End date: 27 Jun. 2019
In this session, lectures and hands-on labs are interspersed, and the students will 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. -- Prerequisites: C, C++ or Fortran programming, experience editing and compiling code in a Linux environment.
Teacher: SciNet Team
Date: Fri., 28 Jun. 2019 - 9:30 am
In this 1.5-day session, through lectures interspersed with hands-on labs, the students will learn the basics of Message Passing Interface (MPI) programming. Examples and exercises will be based on parallelization of common scientific computing problems.
Start date: 11 Jun. 2018
End date: 12 Jun. 2018
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. This year the course will expand to cover the new features available on the GPUs installed on the Graham supercomputer at the University of Waterloo. Students should be able to leave the course with the knowledge necessary to begin developing their own GPU applications.
Teacher: Sharcnet Team
Start date: 13 Jun. 2018
End date: 14 Jun. 2018
In this one-day session, lectures and hands-on labs are interspersed, and the students will learn the basics of shared memory programming with OpenMP. In particular, we will discuss the OpenMP's execution and memory model, performance, reductions and load balancing.
Date: Fri., 15 Jun. 2018 - 9:30 am
Part of the 2017 Ontario Summer School.
Teacher: SciNet Team
Start date: 27 Jul. 2017
End date: 28 Jul. 2017
Part of the 2017 Ontario Summer School
Teacher: SciNet Team
Start date: 25 Jul. 2017
End date: 26 Jul. 2017
part of the 2017 summer school
Teacher: SciNet Team
Start date: 24 Jul. 2017
End date: 25 Jul. 2017
Part of the 2016 Ontario Summer School, this two-day session is an introductory course covering programming and computing on GPUs - graphics processing units - which are an increasingly common presence in massively parallel computing architectures. This session will cover both of the available C-like programming frameworks: NVIDIAs CUDA C. The basics of GPU programming will be covered, and students will work through a number of hands on examples. Demonstrations of profiling and debugging applications running on the GPU will also be included. 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.
Teacher: SciNet Team
Start date: 14 Jul. 2016
End date: 15 Jul. 2016
Part of the 2016 Ontario Summer School, this half-day session will cover parallel programming in python, with a focus on parallel data analysis. We will cover profiling, multiprocessing, mpi4py and other parallel-enabling python packages.
Teacher: SciNet Team
Date: Wed., 13 Jul. 2016 - 1:30 pm
Part of the 2016 Ontario Summer School, in this 1.5-day session, through lectures interspersed with hands-on labs, the students will learn the basics of MPI programming. Examples and exercises will be based on parallelization of common scientific computing problems.
Teacher: SciNet Team
Start date: 12 Jul. 2016
End date: 13 Jul. 2016
Part of the 2016 Ontario Summer School, in these two half-day sessions lectures and hands-on labs are interspersed, and the students will learn the basics of shared memory programming with OpenMP. In particular, we will discuss the OpenMP's threads, memory, and performance, reductions and load balancing. We will also discuss extensions to heterogeneous systems such as offered by the OpenMP 4.0 and OpenACC standards.
Teacher: SciNet Team
Start date: 11 Jul. 2016
End date: 12 Jul. 2016
The goal is for students, new to GPGPU but familiar with programming in C, to leave being able to write simple kernels for their own problems, and understand the tools and techniques needed to improve the results.
Teacher: SciNet Team
Date: Wed., 18 May 2016 - 1:00 pm
As part of the 2008 Fortran standard, Coarray Fortran is a minimal extension to the Fortran language that allows distributed parallel computing, by giving access to arrays held by other processes, without explicit message passing.
Teacher: SciNet Team
Date: Mon., 9 Nov. 2015 - 2:00 pm
Learn how to avoid I/O becoming the bottleneck in your large-scale computation; general strategies as well as true parallel I/O techniques (MPI-IO, HDF5, NetCDF, ..) will be covered in this half-day course.
Teacher: SciNet Team
Date: Mon., 21 Sep. 2015 - 2:00 pm
We will discuss the debugging of frequently encountered bugs in serial code with gdb and the debugging of parallel (MPI and threaded) codes with DDT on live systems. Next, we will present general issues, common pitfalls and optimization strategies that are applicable to HPC systems.
Teacher: SciNet Team
Date: Fri., 17 Jul. 2015 - 9:30 am
This two-day session is an introductory course covering programming and computing on GPUs---graphics processing units---which are an increasingly common presence in massively parallel computing architectures.
Teacher: SciNet Team
Start date: 15 Jul. 2015
End date: 16 Jul. 2015
Part of the 2015 Ontario HPC Summer School. In this two-day session, students will learn the basics of MPI programming. Examples and exercises will be based on parallelization of common scientific computing problems.
Teacher: SciNet Team
Start date: 15 Jul. 2015
End date: 16 Jul. 2015
Students will learn the basics of shared memory programming with OpenMP. In particular, we will discuss the OpenMP's threads, memory, and performance, reductions and load balancing.
Teacher: SciNet Team
Date: Tue., 14 Jul. 2015 - 9:30 am
The goal is for students, new to GPGPU but familiar with programming in C, to leave being able to write simple kernels for their own problems, and understand the tools and techniques needed to improve the results.
Teacher: SciNet Team
Date: Tue., 14 Apr. 2015 - 10:00 am
Part of the 2014 Ontario Summer School on High Performance Computing in Toronoto
Date: Fri., 13 Jun. 2014 - 9:30 am
Part of the 2014 Ontario Summer School on High Performance Computing
Teacher: SciNet Team
Start date: 11 Jun. 2014
End date: 12 Jun. 2014
Part of the 2014 Ontario Summer School on High Performance Computing in Toronto
Date: Tue., 10 Jun. 2014 - 9:30 am
Part of the 2014 Ontario Summer School on High Performance Computing in Toronto
Teacher: SciNet Team
Start date: 11 Jun. 2014
End date: 12 Jun. 2014
Part of the Ontario Summer School on High Performance Computing 2013 -Toronto
Teacher: SciNet Team
Date: Fri., 10 May 2013 - 11:00 am
Part of the Ontario Summer School on High Performance Computing 2013 -Toronto
Teacher: SciNet Team
Start date: 8 May 2013
End date: 9 May 2013
Part of the Ontario Summer School on High Performance Computing 2013 -Toronto
Teacher: SciNet Team
Start date: 8 May 2013
End date: 9 May 2013
Part of the Ontario Summer School on High Performance Computing 2013 -Toronto
Teacher: SciNet Team
Date: Wed., 8 May 2013 - 9:00 am
A half day session on profiling, performance analysis, and tuning of applications will be given from 2pm to 5pm
Teacher: SciNet Team
Date: Wed., 24 Apr. 2013 - 2:00 pm
Doing large-scale computation can be much easier than recording the results of the computation
Teacher: SciNet Team
Date: Wed., 27 Feb. 2013 - 2:00 pm
Debugging is an important step in developing a new code, or porting an old one to a new machine
Teacher: SciNet Team
Date: Wed., 28 Nov. 2012 - 2:00 pm
The last few years have seen an explosion in interest for using graphics cards (graphics processing units, or GPUs) for general-purpose scientific computation
Teacher: SciNet Team
Date: Thu., 15 Dec. 2011 - 9:00 am
The last few years have seen an explosion in interest for using graphics cards (graphics processing units, or GPUs) for general-purpose scientific computation
Teacher: SciNet Team
Date: Mon., 22 Aug. 2011 - 9:00 am

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, threaded, and CUDA) codes using DDT on Trillium. 

Format: Virtual

Teacher: James Willis
Date: Wed., 22 Oct. 2025 - 1:00 pm
High Performance Computing Credits: 3
Explore use advanced examples of parallel computing in scientific research. This course can be taken as a mini/modular graduate course by Physics students.
Start date: 20 Sep. 2016
End date: 13 Oct. 2016
Explore and use advanced examples of parallel computing in scientific research (mini/modular graduate course).
Start date: 11 Sep. 2017
End date: 25 Oct. 2017
Debugging and profiling are important steps 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 with gdb and the debugging of parallel (MPI and threaded) codes.
Teacher: Erik Spence
Start date: 25 Aug. 2020
End date: 27 Aug. 2020
Debugging and profiling are important steps 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 with gdb and the debugging of parallel (MPI and threaded) codes using ddt. If you bring your own code, and can explain your problem or concerns, we'll also give you advice and work with you to try to improve it.
Teacher: SciNet Team
Date: Fri., 28 Jun. 2019 - 1:30 pm
Debugging and profiling are important steps 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 with gdb and the debugging of parallel (MPI and threaded) codes. If you bring your own code, and can explain your problem or concerns, we'll also give you advice and work with you to try to improve it.
Teacher: Bruno Mundim
Date: Fri., 15 Jun. 2018 - 9:30 am
Part of the 2017 Ontario Summer School.
Teacher: SciNet Team
Date: Fri., 28 Jul. 2017 - 9:30 am
Part of the 2017 Ontario Summer School.
Teacher: SciNet Team
Date: Wed., 26 Jul. 2017 - 9:30 am
Part of the 2016 Ontario Summer School. Debugging is an important step in developing a new code, or porting an old one to a new machine. In this half-day session, we will discuss the debugging of frequently encountered bugs in serial code with gdb and the debugging of parallel (MPI and threaded) codes with DDT on live systems.
Teacher: SciNet Team
Date: Fri., 15 Jul. 2016 - 9:30 am

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.

Teacher: James Willis
Date: Mon., 25 Mar. 2024 - 1:00 pm
High Performance Computing Credits: 3

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.

Start date: 11 Jan. 2022
End date: 1 May 2022
Scientific Computing Credits: 28
High Performance Computing Credits: 8

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.

Start date: 10 Jan. 2023
End date: 30 Apr. 2023
Scientific Computing Credits: 28
High Performance Computing Credits: 8

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.

Start date: 9 Jan. 2024
End date: 12 Apr. 2024
Scientific Computing Credits: 28
High Performance Computing Credits: 8

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.

Start date: 7 Jan. 2025
End date: 1 May 2025
Scientific Computing Credits: 28
High Performance Computing Credits: 8

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, ...).

There are three ways to follow this course:

  • As a graduate course for UofT PhD and MSc students. Students that wish to do so, should not self-enrol here, but enrol using ACORN/ROSI.
  • As a SciNet or Alliance user taking the course for SciNet certificate credits; for that, enrol on this site (note: limited spots).
  • As an auditor following along with recordings but not submitting assignments; for this no enrollment is needed.

This is a hybrid in-person/virtual course.  

Start date: 1 Jan. 2026
End date: 1 May 2026
Scientific Computing Credits: 28
High Performance Computing Credits: 8