This workshop is an introduction to parallel programming in Chapel. This material is designed for Day 2 of HPC Carpentry.
By the end of this workshop, students will know:
NOTE: This is the draft HPC Carpentry release. Comments and feedback are welcome.
There are no real prerequisites for this lesson, but prior programming and/or command line experience will be helpful. This lesson assumes no previous knowledge of parallel programming.
|Setup||Download files required for the lesson|
|00:00||1. Introduction to Chapel||What is Chapel and why is it useful?|
|00:30||2. Basic syntax and variables||How do I write basic Chapel code?|
|01:00||3. Ranges and arrays||What is Chapel and why is it useful?|
|02:30||4. Conditional statements||How do I add conditional logic to my code?|
|04:00||5. Getting started with loops||How do I get run the same piece of code repeatedly?|
|05:30||6. Using command-line arguments||How do I use the same program for multiple use-cases?|
|07:00||7. Measuring code performance||How do I know how fast my code is?|
|08:30||8. Intro to parallel computing||How does parallel processing work?|
|10:00||9. Fire-and-forget tasks||How do execute work in parallel?|
|11:30||10. Synchronising tasks||How should I access my data in parallel?|
|13:00||11. Task parallelism with Chapel||How do I write parallel code for a real use case?|
|14:30||12. Running code on multiple machines||What is a locale?|
|17:30||13. Domains and data parallelism||How do I store and manipulate data across multiple locales?|
The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.