The Chapel Parallel Programming Language

 

Featured Publications and Papers

Recent Publications

Data-Centric Performance Measurement Techniques for Chapel Programs [slides]. Hui Zhang and Jeffrey K. Hollingsworth. the 31st IEEE International Parallel and Distributed Processing Symposium, Orlando FL, May 30, 2017.
This paper describes a profiling tool that associates performance with data structures (e.g., arrays) rather than code locations and its use in optimizing Chapel code.
A Study of the Bucket-Exchange Pattern in the PGAS Model Using the ISx Integer Sort Mini-Application. Jacob Hemstad, Ulf R. Hanebutte, Ben Harshbarger, and Bradford L. Chamberlain. PGAS Applications Workshop (PAW) at SC16, November 14, 2016.
This is a short paper on the ISx benchmark in SHMEM and Chapel, including early performance results for the Chapel version.
Optimizing PGAS Overhead in a Multi-Locale Chapel Implementation of CoMD [slides]. Riyaz Haque and David Richards. PGAS Applications Workshop (PAW) at SC16, November 14, 2016.
This is a study of the CoMD proxy application in Chapel conducted by LLNL.

Chapel Overviews

Chapel chapter, Bradford L. Chamberlain, Programming Models for Parallel Computing, edited by Pavan Balaji, published by MIT Press, November 2015.
This is currently the best introduction to Chapel's history, motivating themes, and features. It also provides a brief summary of current and future activities at the time of writing. An early pre-print of this chapter was made available under the name A Brief Overview of Chapel.
Parallel Programmability and the Chapel Language Bradford L. Chamberlain, David Callahan, Hans P. Zima. International Journal of High Performance Computing Applications, August 2007, 21(3): 291-312.
This is an early overview of Chapel's themes and main language concepts.

Multiresolution Chapel Features

User-Defined Parallel Zippered iterators in Chapel [slides]. Bradford L. Chamberlain, Sung-Eun Choi, Steven J. Deitz, Angeles Navarro. PGAS 2011: Fifth Conference on Partitioned Global Address Space Programming Models, October 2011.
This paper describes how users can create parallel iterators that support zippered iteration in Chapel, demonstrating them via several examples that partition iteration spaces statically and dynamically.
Authoring User-Defined Domain Maps in Chapel [slides]. Bradford L. Chamberlain, Sung-Eun Choi, Steven J. Deitz, David Iten, Vassily Litvinov. CUG 2011, May 2011.
This paper builds on our HotPAR 2010 paper by describing the programmer's role in implementing user-defined distributions and layouts in Chapel.
User-Defined Distributions and Layouts in Chapel: Philosophy and Framework [slides]. Bradford L. Chamberlain, Steven J. Deitz, David Iten, Sung-Eun Choi. 2nd USENIX Workshop on Hot Topics in Parallelism (HotPar'10), June 2010.
This paper describes our approach and software framework for implementing user-defined distributions and memory layouts using Chapel's domain map concept.

Chapel Evaluations

Parameterized Diamond Tiling for Stencil Computations with Chapel Parallel Iterators [slides]. Ian J. Bertolacci, Catherine Olschanowsky, Ben Harshbarger, Bradford L. Chamberlain, David G. Wonnacott, Michelle Mills Strout. ICS 2015, June 2015.
This paper explores the expression of parameterized diamond-shaped time-space tilings in Chapel, demonstrating competitive performance with C+OpenMP along with significant software engineering benefits due to Chapel's support for parallel iterators.
A Study of Successive Over-relaxation (SOR) Method Parallelization Over Modern HPC Languages [code], Sparsh Mittal, International Journal of High Performance Computing and Networking (IJHPCN), vol. 7, no. 4, 2014
This paper compares Chapel, D, and Go in the context of Successive Over-relazation.
Benchmarking Usability and Performance of Multicore Languages (awarded "Best Paper"), Sebastian Nanz, Scott West, Kaue Soares da Silveira, and Bertrand Meyer. ESEM 2013, October 2013.
This paper compares Chapel, Cilk, Go, and TBB across a suite of six benchmarks (with both beginner and expert versions of each), comparing code size, coding time, execution time, and speedup.
Run, Stencil, Run! HPC Productivity Studies in the Classroom [slides], Helmar Burkhart, Madan Sathe, Matthias Christen, Olaf Schenk, and Max Rietmann. PGAS 2012, October 2012.
This paper describes classroom productivity studies conducted at the University of Basel, comparing Chapel with Java, OpenMP, MPI, UPC, and PATUS.

Chapel Optimizations

LLVM-based Communication Optimizations for PGAS Programs. Akihiro Hayashi, Jisheng Zhao, Michael Ferguson, Vivek Sarkar. 2nd Workshop on the LLVM Compiler Infrastructure in HPC (LLVM-HPC2), November 2015.
This paper describes how LLVM passes can optimize communication in PGAS languages like Chapel. In particular, by representing potentially remote addresses using a distinct address space, existing LLVM optimization passes can be used to reduce communication.
Caching Puts and Gets in a PGAS Language Runtime [slides]. Michael P. Ferguson, Daniel Buettner. 9th International Conference on Partitioned Global Address Space Programming Models (PGAS 2015), Sept 2015.
This paper describes an optimization implemented for Chapel in which the runtime library aggregates puts and gets in accordance with Chapel's memory consistency model in order to reduce the potential overhead of doing fine-grained communications.
Global Data Re-allocation via Communication Aggregation in Chapel [slides], Alberto Sanz, Rafael Asenjo, Juan Lopez, Rafael Larrosa, Angeles Navarro, Vassily Litvinov, Sung-Eun Choi, and Bradford L. Chamberlain. UMA-DAC-12/02 (this is an extended version of the paper that appeared at the 24th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD'2012), New York City, NY), October 2012.
This paper describes a Chapel optimization that aggregates communication for array-to-array assignments (or slices thereof) to reduce communication overheads.

Chapel Explorations

Towards Resilient Chapel: Design and Implementation of a Transparent Resilience Mechanism for Chapel, Konstantina Panagiotopoulou and Hans-Wolfgang Loidl. EASC '15, April 21-23 2015.
This paper describes the design and prototype implementation of resilience support for Chapel in a transparent manner.
Performance Portability with the Chapel Language. Albert Sidelnik, Saeed Maleki, Bradford L. Chamberlain, María J. Garzarán, David Padua. IPDPS 2012, May 2012.
This paper describes the use of Chapel to target GPUs and multicore processors using a unified set of language concepts.
Interfacing Chapel with Traditional HPC Programming Languages [slides], Adrian Prantl, Thomas Epperly, Shams Imam, Vivek Sarkar. PGAS 2011: Fifth Conference on Partitioned Global Address Space Programming Models, October 2011.
This paper describes work being done by LLNL and Rice to extend Babel's interoperability capabilities to support calls between Chapel and other HPC-oriented languages.

Chapel Philosophy

Multiresolution Languages for Portable yet Efficient Parallel Programming, Bradford L. Chamberlain, whitepaper, October 2007.
This is a position paper written in Q&A format that serves as the first written description of Chapel's multiresolution language design philosophy.

Archived Publications and Papers