High-level parallel programming using Chapel

Presented by David Bunde and Kyle Burke.
Educator program session at SC 2012.


Chapel is a parallel programming language that provides a wide variety of tools to exploit different kinds of parallelism. It is flexible, supporting both OO programming and a low-overhead style similar to scripting languages. Of particular note is its expressiveness; a single keyword launches an asynchronous task or performs a parallel reduction. Data parallelism is easily expressed using domains, index sets that can be grown, translated, or intersected. The availability of high-level parallel operations such as these makes Chapel well-suited for students since concise examples help them focus on the main point and students can quickly try different parallel algorithms. This session features a demonstration of the basics of Chapel, including hands-on exercises, followed by a discussion of ways it can benefit a wide variety of courses.