Chapel and Parallel Programming Week

Wednesday 2013-04-10 – Friday 2013-04-12
Bradford Chamberlain (Cray Inc, Seattle, Washington, USA)


The week consists of a workshop on the The Chapel Parallel Programming Language and parallel programming models. The workshop is 0930–1600, Wednesday through Friday. Part of the workshop has a more general interest.

  • Wednesday 2013-04-10 1000–1400, room 3137, including lunch:
    Tutorial: Productive Programming in Chapel: a next-generation language for general, locality-aware parallelism.

    Chapel is an emerging parallel language being developed by Cray Inc. to improve the productivity of parallel programmers, from large-scale supercomputers to multicore laptops and workstations. Chapel aims to vastly improve programmability over current parallel programming models while supporting performance and portability that is comparable or better. Chapel supports far more general, dynamic, and data-driven models of parallel computation while also separating the expression of parallelism from that of locality/affinity control. Though being developed by Cray, Chapel is portable, open-source software that supports a wide spectrum of platforms including desktops (Mac, Linux, and Windows), UNIX-based commodity clusters, and systems sold by Cray and other vendors. This tutorial will provide an in-depth introduction to Chapel, from context and motivation to a detailed description of Chapel concepts via lecture, sample computations, and live demos. We’ll conclude by giving an overview of ongoing Chapel activities and collaborations, and by soliciting participants for their feedback to improve Chapel’s utility for their parallel computing needs.

  • Thursday 2013-04-11 1415–1515, room 2144:
    Departmental seminar lecture: Chapel: Parallel Programmability from Desktops to Supercomputers

    Chapel is an emerging programming language whose design and development is being led by Cray Inc. with collaboration from academia, government, and industry. Chapel grew out of the DARPA-led High Productivity Computing Systems program (HPCS), with the goal of significantly improving programmer productivity on HPC systems.

    Chapel's central philosophy is to support a multiresolution feature set in which both higher- and lower-level features are supported, permitting users to select between greater abstraction vs. control as required within a given context. Moreover, Chapel's highest-level features can be defined within the language itself by an end-user, providing a means for defining new parallel loop schedules or data distributions. Chapel is also designed for generality and portability -- in short, its overarching goal is to support any parallel algorithm on any parallel hardware.

    In this talk, I will provide an overview of Chapel, from context and motivating themes to a high-level walkthrough of its primary features. I'll also mention collaborative efforts and areas for future work.

  • Friday 2013-04-12 1215–1300, room 2142:
    Hierarchical Locales: Exposing Node-Level Locality in Chapel

    As clock speeds level off, HPC architects have been exploring compute node designs that contain increasing degrees of hierarchy and heterogeneity as compared to those from the 1990's thru 2010 or so. As a result, performance-aware programmers must increasingly pay attention to locality within the compute node to maximize the hardware's throughput. An emerging impact of these trends is that the abstract machine model which the HPC community has programmed to for decades will have to undergo a fairly radical shift to reflect exascale-era machines.

    Our extant programming models are not particularly prepared for this shift, as they typically have conflated parallelism and locality (as in SPMD models like MPI, UPC, or Co-Array Fortran), or have ignored locality altogether (as in shared memory models like OpenMP, Pthreads, etc.). The consequence is that many programmers are increasingly turning to hybrid parallel programming models in order to make use of the multiple levels of harwdare parallelism --- an approach that leaves much to be desired.

    The hypothesis of this talk is that languages which support distinct concepts for talking about parallelism and locality, like Chapel, are better positioned for the next generation of parallel computing. That said, additional work is required given the shift in architectures. In this talk I'll describe a new concept that we are pursuing in Chapel, called "Hierarchical Locales", with the goal of addressing these increasingly complex node architectures.

Participation in the workshop, the tutorial and the presentations are open to anybody interested and is free. The tutorial and the workshop require registration: call Marta at +47 55 58 42 00 or send an email to Marta.Lopez (c/o) by Friday 2013-04-05.

Room 2142 (lille auditorium) is in Datablokken, Høyteknologisenteret, Thormøhlensgt 55.
Room 2144 (stort auditorium) is in Datablokken, Høyteknologisenteret, Thormøhlensgt 55.
Room 3137 is in Datablokken, Høyteknologisenteret, Thormøhlensgt 55.

BLDL seminars 2013