Chapel parallel programming

Instructor: Alex Razoumov (WestGrid)

This course is a general introduction to the main concepts of parallel programming, using Chapel programming language to illustrate the basic concepts and ideas. Chapel is a relatively new language for both shared- and distributed-memory programming, with easy-to-use, high-level abstractions for both task and data parallelism that make it ideal for learning parallel programming for a novice HPC user. Chapel is incredibly intuitive, striving to merge the ease-of-use of Python and the performance of traditional compiled languages such as C and Fortran. Parallel constructs that typically take tens of lines of MPI code can be expressed in only a few lines of Chapel code. Chapel is open source and can run on any Unix-like operating system, with hardware support from laptops to large HPC systems.

Target audience: general

Duration: 3 hours

Level: beginner/intermediate

Prerequisites: This is an introductory course, no prior parallel programming experience is required; however, having some programming background will allow the attendees to get the most out of this workshop. Also, we strongly recommend that all attendees have the working knowledge of Linux command line (covered on Day 1) and know the basic concepts of high-performace computing (covered on Day 2).

Laptop software: All attendees will need to bring their laptops with wireless access and with a remote SSH client installed (on Windows laptops we recommend the free edition of MobaXterm; on Mac and Linux laptops no need to install anything). We will be using Chapel on a remote cluster, but it can also be installed on laptops from https://chapel-lang.org.