Writing your own code

Programming Resources

Introduction to various programming languages and libraries

Table of Contents

Parallel Libraries

“A Brief Introduction to the Boost MPI Library”

Webinar (2018-May-09)

Debugging and memory debugging

“Memory debugging with Valgrind”

Webinar (2019-Feb-20)

The screencast recording will be added shortly.

Chapel

Webinar Series: “Intro to Parallel Programming in Chapel”

In this three-part online webinar series, we introduce the main concepts of the Chapel parallel programming language. Chapel is a relatively new language for both shared- and distributed-memory programming, with easy-to-use, high-level features that make it ideal for learning parallel programming for a novice HPC user.

Unlike other high-level data-processing languages and workflows, the primary application of Chapel is numerical modelling and simulation codes, so this workshop is ideal for anyone who wants to learn how to write efficient large-scale numerical codes.

Part 1: Basic language features (2018-Feb-28)
Part 2: Task parallelism in Chapel (2018-Mar-07)
Part 3: Data parallelism in Chapel (2018-Mar-14)

HPC Carpentry Course

As part of their contribution to HPC Carpentry, WestGrid staff authored a Parallel programming in Chapel course. The materials and exercises presented in this course can be presented as a full-day workshop. If you have questions about the materials, please contact Alex Razoumov - alex.razoumov@westgrid.ca.

OpenMP

Webinar: Intro to Parallel Programming for Shared Memory Machines

This online workshop explores how to use OpenMP to improve the speed of serial jobs on multi-core machines. We review how to add OpenMP constructs to a serial program in order to run it using multiple cores. Viewers are led through a series of hands-on, interactive examples, focusing on multi-threading parallel programming.

The topics covered include:

  • Basic OpenMP operations
  • Loops
  • Reduction variables

View the slides

MATLAB

“Data Analytics and Machine Learning with MATLAB”

Webinar (2018-Oct-31)