Instructor: Alex Razoumov (WestGrid)
Title: Parallel programming in Chapel
This course is a general introduction to 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 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
Course plan:
- introduction to Chapel basic language features
- task parallelism (mostly on single node)
- data parallelism (both on single and across multiple nodes)
Duration: 6 hours
Level: beginner
Prerequisites: None
Setup:
- Cluster reservation: 4 nodes * 3 cores/node per attendee
- Laptop software: SSH client (built-in on Mac/Linux, on Windows MobaXTerm or PuTTY)