Resources

Tutorials

Recorded Chapel Tutorial (75 minutes)

Presented at ChapelCon 2024, June 2024.

Full Day Chapel Tutorial

Papers

Development of a Knowledge-Sharing Parallel Computing Approach for Calibrating Distributed Watershed Hydrologic Models Marjan Asgari, Wanhong Yang, John Lindsay, Hui Shao, Yongbo Liu, Rodrigo De Queiroga Miranda, and Maryam Mehri Dehnavi, Environmental Modelling & Software, volume 164, 2023

This paper uses Chapel in a novel knowledge-sharing setting to support a general parallel framework for calibrating distributed hydrologic models. The approach is unique due to the use of a novel search algorithm as well as its interoperability with C#, fault tolerance, parallelism, and reliability.

Compiler Optimization for Irregular Memory Access Patterns in PGAS Programs [ Slides ] Thomas B. Rolinger, Christopher D. Krieger, Alan Sussman, LCPC 2022, October 13, 2022

This paper presents a compiler optimization that targets irregular memory accesses patterns in Chapel programs. Specifically, it uses static analysis to identify irregular memory accesses to distributed arrays in parallel loops and employs code transformations to generate an inspector and executor to perform selective data replication at runtime.

Towards Chapel-based Exascale Tree Search Algorithms: dealing with multiple GPU accelerators [ Slides ] Tiago Carneiro, Nouredine Melab, Akihiro Hayashi, Vivek Sarkar, HPCS 2020, Outstanding Paper Award winner, March 22–27, 2021

This paper revisits the design and implementation of tree search algorithms dealing with multiple GPUs, in addition to scalability and productivity-awareness using Chapel. The proposed algorithm exploits Chapel's distributed iterators by combining a partial search strategy with pre-compiled CUDA kernels for more efficient exploitation of the intra-node parallelism.

Development of Parallel CFD Applications with the Chapel Programming Language [ Video | Slides ] Matthieu Parenteau, Simon Bourgault-Côté, Frédéric Plante, Engin Kayraklioglu, Éric Laurendeau, AIAA Scitech 2021 Forum, January 13, 2021.

This paper describes a Computational Fluid Dynamics framework being developed using Chapel by a team at Polytechnique Montreal. The use of Chapel is described, and scaling results are given on up to 9k cores of a Cray XC. Comparisons are made against well-established CFD software packages.

Recent Publications

A Local Search for Automatic Parameterization of Distributed Tree Search Algorithms Tiago Carneiro, Loizos Koutsantonis, Nouredine Melab, Emmanuel Kieffer, Pascal Bouvry, 12th IEEE Workshop Parallel / Distributed Combinatorics and Optimization (PDCO 2022), June 3, 2022

This work presents a local search for automatic parameterization of ChapelBB, a distributed tree search application for solving combinatorial optimization problems written in Chapel. The main objective of the proposed heuristic is to overcome the limitation of manual parameterization, which covers a limited feasible space.

Extending Chapel to support fabric-attached memory [ Slides ] Amitha C, Bradford L. Chamberlain, Clarete Riana Crasta, and Sharad Singhal, CUG 2022, Monterey CA, May 4, 2022

This paper describes an implementation of Chapel's arrays that leverages the language's support for user-defined data distributions to implement the array using fabric-attached memory (FAM) rather than simply local DRAM.

A performance-oriented comparative study of the Chapel high-productivity language to conventional programming environments [ Slides ] Guillaume Helbecque, Jan Gmys, Tiago Carneiro, Nouredine Melab, Pascal Bouvry, 13th International Workshop on Programming Models and Applications for Multicores and Manycores (PMAM 2022), Seoul, South Korea, April 2, 2022.

This work compares the performance of a Chapel-based fractal generation on shared- and distributed-memory platforms with corresponding OpenMP and MPI+X implementations.

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.

Chapel Project Updates

Chapel Comes of Age: Productive Parallelism at Scale [ Slides ] Brad Chamberlain, Elliot Ronaghan, Ben Albrecht, Lydia Duncan, Michael Ferguson, Ben Harshbarger, David Iten, David Keaton, Vassily Litvinov, Preston Sahabu, and Greg Titus, CUG 2018, Stockholm Sweden, May 22, 2018.

This paper describes the progress that has been made with Chapel since the HPCS program wrapped up.

The State of the Chapel Union [ Slides ] Bradford L. Chamberlain, Sung-Eun Choi, Martha Dumler, Thomas Hildebrandt, David Iten, Vassily Litvinov, Greg Titus. , CUG 2013, , May 2013.

This paper provides a snapshot of the Chapel project at the juncture between the end of the HPCS project and the start of the next phase in Chapel's development. It covers past successes, current status, and future directions.

Chapel Optimizations

Locality-Based Optimizations in the Chapel Compiler [ Slides ] Engin Kayraklioglu, Elliot Ronaghan, Michael P. Ferguson, and Bradford L. Chamberlain, LCPC 2021, October 13, 2021

This paper describes a pair of recent compiler optimizations focused on reducing communication overheads in Chapel, leveraging Chapel's high-level abstractions—one that strength reduces local array accesses, and a second which aggregates communications to amortize overheads.

A Machine-Learning-Based Framework for Productive Locality Exploitation Engin Kayraklioglu, Erwan Fawry, Tarek El-Ghazawi, IEEE Transactions on Parallel and Distributed Systems (IEEE TPDS). Volume 32, Issue 6, June 2021

This paper describes an approach that can efficiently train machine learning models that can be used to improve application execution times and scalability on distributed memory systems. This is achieved by analyzing the fine-grained communication profile of the application with small input data, and then predicting the communication patterns for more realistic inputs and coarsening the communication.

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.

Applications of Chapel

A Comparative Study of High-Productivity High-Performance Programming Languages for Parallel Metaheuristics [ PDF ] Jan Gmys, Tiago Carneiro, Nouredine Melab, El-Ghazali Talbi, Daniel Tuyttens, Swarm and Evolutionary Computation, volume 57. September 2020,

This paper compares Chapel with Julia, Python/Numba, and C+OpenMP in terms of performance, scalability and productivity. Two parallel metaheuristics are implemented for solving the 3D Quadratic Assignment Problem (Q3AP), using thread-based parallelism on a multi-core shared-memory computer. The paper also evaluates and compares the performance of the languages for a parallel fitness evaluation loop, using four different test functions with different computational characteristics. The authors provide feedback on the implementation and parallelization process in each language.

Hypergraph Analytics of Domain Name System Relationships Cliff A Joslyn, Sinan Aksoy, Dustin Arendt, Jesun Firoz, Louis Jenkins, Brenda Praggastis, Emilie Purvine, Marcin Zalewski, 17th Workshop on Algorithms and Models for the Web Graph (WAW 2020), September 21–24, 2020

This paper applies hypergraph analytics over a gigascale DNS data using CHGL, performing compute-intensive calculations for data reduction and segmentation. Identified portions are then sent to HNX for both exploratory analysis and knowledge discovery targeting known tactics, techniques, and procedures.

Towards ultra-scale Branch-and-Bound using a high-productivity language Tiago Carneiro, Jan Gmys, Nouredine Melab, and Daniel Tuyttens, Future Generation Computer Systems, volume 105, pages 196-209, April 2020.

This paper uses Chapel to study the design and implementation of distributed Branch-and-Bound algorithms for solving large combinatorial optimization problems. Experiments on the proposed algorithms are performed using the Flow-shop scheduling problem as a test-case. The Chapel-based application is compared to a state-of-the-art MPI+Pthreads-based counterpart in terms of performance, scalability, and productivity.

Graph Algorithms in PGAS: Chapel and UPC++ Louis Jenkins, Jesun Sahariar Firoz, Marcin Zalewski, Cliff Joslyn, Mark Raugas, 2019 IEEE High Performance Extreme Computing Conference (HPEC ‘19), September 24–26, 2019.

This paper compares implementations of Breadth-First Search and Triangle Counting in Chapel and UPC++

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 Tools

ChplBlamer: A Data-centric and Code-centric Combined Profiler for Multi-locale Chapel Programs [ Slides ] Hui Zhang and Jeffrey K. Hollingsworth, In Proceedings of the 32nd ACM International Conference on Supercomputing (ICS'18), pages 252–262, June 2018

This paper describes a tool that uses a combination of data-centric and code-centric information to relate performance profiling information back to user-level data structures and source code in Chapel programs.

APAT: an access pattern analysis tool for distributed arrays Engin Kayraklioglu and Tarek El-Ghazawi, In Proceedings of the 15th ACM International Conference on Computing Frontiers (CF'18), pages 248–251, May 2018

This paper proposes a high-level, data-centric profiler to analyze how distributed arrays are used by each locale.

Chapel Explorations

LAPPS: Locality-Aware Productive Prefetching Support for PGAS Engin Kayraklioglu, Michael Ferguson, and Tarek El-Ghazawi, ACM Transactions on Architecture and Code Optimizations (ACM TACO). Volume 15, Issue 3, September 2018

This paper describes a high-level, easy-to-use language feature to improve data locality efficiently.

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.

Chapel Historical Papers

The Cascade High Productivity Language [ Slides ] David Callahan, Bradford L. Chamberlain, Hans P. Zima, In 9th International Workshop on High-Level Parallel Programming Models and Supportive Environments (HIPS 2004), pages 52-60. IEEE Computer Society, April 2004

This is the original Chapel paper which lays out some of our motivation and foundations for exploring the language. Note that the language has evolved significantly since this paper was published, but it remains an interesting historical artifact.

Presentations

Introducing Chapel: A Programming Language for Productive Parallel Computing from Laptops to Supercomputers [ Video ] Brad Chamberlain, LinuxCon / Open Source Summit North America 2023, Vancouver BC, May 11, 2023

This introduction to Chapel provides the language's motivation and brief comparisons with familiar languages and HPC programming models. It then introduces some of Chapel's core features for parallelism and locality, showing how they have recently been extended to also support GPUs. It wraps up by providing a peek into some of the flagship applications that are using Chapel.

Vendor-Neutral GPU Programming in Chapel [ Video | Demos ] Jade Abraham and Engin Kayrakloglu, HPE Developer Meetup, online, July 31, 2024

This is a talk with demos that introduces the use of Chapel to program GPUs in a vendor-neutral manner.

The Value of Languages in Parallel Computing [ Video ] Brad Chamberlain, PNW PLSE 2024, Seattle WA, May 7, 2024

This lightning talk illustrates Chapel implementing several variants of Bale IndexGather—a random access computation: serially, for multicore processors, for GPUs, and on supercomputers. It touts the benefits of parallel languages in making such computations straightforward, yet fast and scalable.

Chapel and Open Productive Parallel Computing at Scale [ Video | Live Demo ] Michael Ferguson, Open Source Connector, Burlington VT (presented remotely), February 7, 2024

This talk demonstrates how, as a parallel language, Chapel's standard library can easily support parallel implementations, permitting codes that are as succinct as other popular languages to outperform them by 10x–400x. It is also unique among the talks here in that it includes a live demo of programming using Chapel and Arkouda.

High-Performance Programming and Execution of a Coral Biodiversity Mapping Algorithm Using Chapel [ Paper ] Scott Bachman, PAW-ATM 2023, Denver, CO, November 13, 2023

This talk describes the use of Chapel to estimate the biodiversity of coral reefs using satellite image analysis.

Implementing Scalable Matrix-Vector Products for the Exact Diagonalization Methods in Quantum Many-Body Physics [ Paper ] Tom Westerhout, PAW-ATM 2023, Denver, CO, November 13, 2023.

This talk describes the use of Chapel to compute exact diagonalization methods on distributed systems, as used when simulating small quantum systems.

Other Recent Presentations

Vendor-Neutral GPU Programming in Chapel [ Video ] Jade Abraham, LinuxCon / Open Source Summit North America 2024, Seattle WA, April 16, 2024.

This talk gives an introduction to Chapel's support for GPU programming, including live demos on AMD and NVIDIA GPUs.

Portable Support for GPUs and Distributed-Memory Parallelism in Chapel Andrew Stone, CUG 2024, Perth Australia, May 9, 2024

This talk introduces Chapel's support for GPU programming through user codes making use of it today and sample code segments.

High-level, Vendor-Neutral GPU Programming Using Chapel Engin Kayraklioglu, internal HPE talk (edited for public consumption), January 9, 2024

This talk provides an in-depth introduction to Chapel's support for GPU programming from motivation to key concepts, applications, implementation approach, and ongoing work.

Arkouda: A High-Performance Data Analytics Framework Michelle Strout, CUG 2023, Helsinki, Finland, May 10, 2023

This is an introduction to the motivation, capabilities, and performance of Arkouda, supporting interactive data science for Python users at massive scales.

Timeless Talks

HPC Lessons from 30 Years of Practice in CFD Towards Aircraft Design and Analysis [ Video ] Éric Laurendeau, CHIUW 2021, online, June 4, 2021

This CHIUW keynote describes CHAMPS, a ~48k-line framework written in Chapel for 3D unstructured computational fluid dynamics (CFD), while also providing an introduction to the role of HPC in Aerodynamics. The productivity benefits that Chapel brings to the CHAMPS team's work are made clear.

Arkouda: Chapel-Powered, Interactive Supercomputing for Data Science [ Video | Q&A ] William Reus, CHIUW 2020, online, May 22, 2020

This CHIUW keynote describes Arkouda, a Python package that provides a NumPy-like interface implemented using a Chapel server that scales to dozens of Terabytes of data at interactive rates.

Chapel’s Home in the New Landscape of Scientific Frameworks (and what it can learn from the neighbours) [ Video | Slides ] Jonathan Dursi, CHIUW 2017 keynote, Orlando FL, June 2, 2017

This keynote by Jonathan Dursi presents a survey of modern parallel computing frameworks as seen through the filter of the speaker's applications background, and describes Chapel's unique position within that landscape.

Chapel in the (Cosmological) Wild [ Video ] Nikhil Padmanabhan (Yale University), CHIUW 2016, May 27, 2016

This was the keynote talk at CHIUW 2016, reporting on the personal experiences of an Astrophysics Professor who's been looking at using Chapel in his research.

Chapel Overviews

Parallel Programming with Chapel (or: Performance at any Cost? HPC and 24h of Le Mans) [ Video ] Brad Chamberlain, PNW PLSE 2023, Seattle, WA, May 9, 2023

This 10-minute talk provides a very brief introduction to Chapel, highlighting recent advances such as support for GPUs and user applications.

Making Parallel Computing as Easy as Py(thon), from Laptops to Supercomputers Brad Chamberlain, HPE Dev Munch & Learn, online, April 20, 2022

This talk provides background on Chapel, such as how it compares to other mainstream language and HPC programming models, along with some of its benefits in the Arkouda and CHAMPS applications.

Applications of Chapel

Practical Examples of Productivity and Performance in Chapel Brad Chamberlain, PASC'23, Davos, Switzerland (presented remotely), June 26, 2023

This talk summarizes Chapel's use in CHAMPS and Arkouda, including some recent scaling results, and summarizes the use of traditional Chapel features to target GPUs in a vendor-neutral manner.

Application Examples of Leveraging Task Parallelism with Chapel [ Video ] Michelle Strout, WAMTA 2023 keynote, Baton Rouge LA, February 15, 2023

This keynote demonstrates how Chapel's support for task-parallelism is being used to express a wide variety of computations while also generating good performance and scalability.

Simulating Ultralight Dark Matter with Chapel: An Experience Report [ Paper ] Nikhil Padmanabhan, PAW-ATM 2019, Denver CO, November 17, 2019

This talk describes a use of Chapel to explore dark matter in cosmological models.

Arkouda: NumPy-like arrays at massive scale backed by Chapel [ Paper ] Mike Merrill, PAW-ATM 2019, Denver CO, November 17, 2019

This talk describes the role of Chapel in supporting Exploratory Data Analysis (EDA) in Arkouda.

GPU Computing in Chapel

Generating GPU Kernels from Chapel's Features for Parallelism and Locality Engin Kayraklioglu, SIAM PP22 minisymposium on Code Generation and Transformation in HPC on Heterogeneous Platforms, online, February 26, 2022

This talk describes Chapel's recently added support for GPU programming, detailing the programming model and code generation strategy.

Implementing and Optimizing Chapel

Compiling Chapel: Keys to Making Parallel Programming Productive at Scale [ Video ] Brad Chamberlain, PACT'20, online, October 7, 2020

This talk gives a peek into what's required to compile some of Chapel's key features, and describes a pair of optimizations that are made possible through its unique features.

Multiresolution Support for Aggregated Communication in Chapel Brad Chamberlain, OpenSHMEM 2021 keynote, online, September 16, 2021

This keynote describes various forms of optimized and aggregated communications in Chapel for sparse communication patterns as exhibited by HPCC RA, Bale IndexGather, or Arkouda. Approaches include asynchronous fine-grain communications, manual copies expressed using Chapel's global namespace, and aggregation via user-level abstractions or compiler transformations.

Asynchronous Task-Based Aggregated Communication in Chapel Elliot Ronaghan, AMTE 2022, online, August 23, 2022

This talk describes the use of Chapel's task-based parallel features to optimize communication through compiler analysis and/or user-defined aggregation abstractions.

Communication Optimizations for the Chapel Programming Language Michael Ferguson, University of Maryland, March 24, 2016

This talk describes the Chapel memory consistency model and how it enables two communication optimizations that have been implemented for Chapel.

Chapel: The Design and Implementation of a Multiresolution Language Brad Chamberlain, Keynotes on HPC Languages, Lyon, France, June 30, 2013

This talk is a fairly comprehensive overview of Chapel's themes, features, and status, with a bit more emphasis on the implementation and multiresolution design of the language than a typical talk allows for.

Chapel Design and Philosophy

Chapel: Recent Successes, Ongoing Challenges , DOE Programming Systems Research Forum, online, February 28, 2022

This talk provides an update to the DOE community about recent Chapel progress, along with a retrospective about how we got here and some research challenges going forward.

If the HPC Community were to create a truly productive language...[how] would we ever know? Brad Chamberlain, keynote at Dagstuhl Seminar on Performance Portability in Extreme Scale Computing: Metrics, Challenges, Solutions, Wadern Germany, October 23-27, 2017

This keynote provided a review of some of the productivity metrics that were pursued under the DARPA HPCS program, but then argued that productivity seems like a very personal/social decision and that it therefore should be studied in forums supporting personal/social decisions. Two specific proposals are made.

A Language Designer's Perspective on Benchmarking Suites and Competitions Brad Chamberlain, EMBRACE 2017 invited talk, Orlando FL, June 2, 2017

This talk surveys past approaches to benchmarking from a language designer's perspective, rating them along various axes of importance. It wraps up by advocating for an HPC equivalent to the Computer Language Benchmarks game.

Lessons Learned in Array Programming: from ZPL to Chapel Brad Chamberlain, ARRAY 2016 keynote, June 14, 2016

This keynote talk reflects on some of the successes of ZPL's support for data-parallel array-based programming, lists reasons that ZPL was ultimately limited, and how we addressed those limitations in Chapel's design.

Chapel Hierarchical Locales: Adaptable Portability for Exascale Node Architectures [ Poster ] Greg Titus, SC14 Emerging Technologies Presentations, November 18, 2014

This talk and poster provide an introduction to Chapel's hierarchical locales, a Chapel concept for making the language and user codes future-proof against future changes in node architecture.

Reflections on Programming Environments and Productivity (based on experiences with HPCS and Chapel) Brad Chamberlain, ASCR Exascale Computing Systems Productivity Workshop, Gaithersburg MD, June 3rd, 2014

This talk briefly summarizes productivity-oriented metrics work undertaken by the Cray Cascade project during the HPCS program, along with a few anecdotal instances of Chapel productivity. It also provides some of Brad's personal takeaways from the experience.

Five Things About HPC Programming Models I Can Live Without Sung-Eun Choi, DOE Workshop on Exascale Programming Challenges, July 27, 2011

This talk lists some of the things that we think make HPC programming non-productive today and gives examples of how we are trying to address them in Chapel.

Five Key Parallel Design Decisions (for Multicore, Petascale, and Beyond) Brad Chamberlain, Barcelona Multicore Workshop, October 22, 2010

This talk considers five design decisions that parallel language designers should wrestle with and how Chapel's design deals with them.