Chapel: A Versatile Tool for Teaching Undergraduates Parallel Programming

Presented by David Bunde and Kyle Burke.
Workshop at SIGCSE 2014. (Workshop 28, scheduled Saturday 3-6pm)


Abstract:

Chapel is a programming language being developed for high-performance applications. It is well suited for teaching parallelism in a wide variety of undergrad courses. Chapel is easy to learn since it supports a low-overhead style like a scripting language as well as a full OO style. It is concise, needing a single keyword to launch an asynchronous task, run a parallel loop, or perform a reduction. This helps undergrads focus on the main point of examples and lets them quickly try different parallel algorithms. It is also versatile, usable on both multicore systems and clusters. In this workshop, attendees will learn basics of Chapel, complete hands-on exercises, and see possible uses in algorithms, programming languages, and parallel programming courses. Laptop with SSH client required.


Before the workshop

In the workshop, you'll be given an account on a system with Chapel pre-installed. to access this system, you'll need an SSH client. I suggest PuTTY for Windows systems. The client ssh should be pre-installed on a Linux or Mac OS system; try typing ssh on a terminal to check.

If you would like to run Chapel on your own system rather than using our accounts, you can download it from here. Some installation advice is here. It installs easily on Linux or Mac OS systems. You will need to use Cygwin on a Windows system. If you're using your own system, you should also download our given code (in tar or zip format).

If you have any trouble, please contact the workshop organizers.


Workshop outline and slides

  1. Language Introduction
  2. Chapel in Programming Languages
  3. Hands-on time
  4. Algorithms
  5. Reductions and dedicated Parallel Programming course
  6. Hands-on time
  7. Summary and Discussion

You can also get all the slides in one file.