Introduction to Chapel


If you have never done parallel programming before, this beginner-friendly course will guide you through the basic concepts of writing data-parallel programs for both shared- and distributed-memory systems.

Chapel is a modern programming language offering high-level, easy-to-use abstractions for task and data parallelism. Its intuitive syntax makes it an excellent choice for novice HPC users learning parallel programming. Chapel supports a wide range of parallel hardware – from multicore processors and multi-node clusters to GPUs – using consistent syntax and concepts across all levels of hardware parallelism.

This course begins with Chapel fundamentals, then focuses on data parallelism through two numerical examples: one embarrassingly parallel and one tightly coupled. Towards the end we’ll look at GPU programming with Chapel.

Date:
Thursday, June 12, 2025

Time:
1:30pm–4:30pm (afternoon session)

Instructor:
Alex Razoumov (Simon Fraser University)

Prerequisites:
Some Unix command-line knowledge, as well as basic familiarity with submitting jobs on an HPC cluster – both of these are covered on Monday and Tuesday.

Software:
We will provide access to one of our Linux systems. To make use of it, attendees will need a remote secure shell (SSH) client installed on their computer. On Windows we recommend the free Home Edition of MobaXterm. On Mac and Linux computers, SSH is usually pre-installed (try typing ssh in a terminal to make sure it is there).