High performance computing

Parallel computing courses

Courses tagged with "High performance computing"

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

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

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

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

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

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

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 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
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 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
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
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 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
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
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 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
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 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
Part of the 2017 Ontario Summer School.
Teacher: SciNet Team
Category: Data Science
Date: Wed, 26 Jul 2017 - 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
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 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