The Chapel Parallel Programming Language

 

CHIUW 2022

The 9th Annual
Chapel Implementers and Users Workshop

Coding Day
Thursday June 9th, 2022
Participants Only

Workshop Day
Friday June 10th, 2022
8:15am–4:00pm PDT (GMT–7)
free and online via Zoom

Summary

CHIUW 2022 is the 9th annual Chapel Implementers and Users Workshop, which serves as a forum where users and developers of the Chapel programming language (chapel-lang.org) can meet to report on work being done with Chapel, exchange ideas, and forge new collaborations. Anyone interested in parallel programming and Chapel is encouraged to attend CHIUW, from long-term enthusiasts to those simply curious to learn more. This year's CHIUW will be online and there will be no registration fees.

Registration

Registration for CHIUW 2022 is free and can be completed at this link.

Program
Pre-Workshop
 
anytime  Chapel 101 [slides | video]
Brad Chamberlain (Hewlett Packard Enterprise)
This is a completely optional talk for those who are new to Chapel and looking for a crash-course, or for those who would simply appreciate a refresher.
 
 
Thursday, June 9th
all day  Coding Day
This day will consist of asynchronous sessions where Chapel developers help users and enthusiasts with their Chapel code. Coding Day submissions are closed, but if you are interested, please fill out this form as soon as you can. We will try to match you with a Chapel developer.
 
 
 
Friday, June 10th
 
Time (PDT)
8:15–8:50  Welcome [slides | video] , State of the Project [slides | video w/ Q&A]
Engin Kayraklioglu, Brad Chamberlain (Hewlett Packard Enterprise)
This session will serve as a welcome to and overview of CHIUW 2022, along with a brief summary of highlights and milestones achieved within the Chapel project since last year.
 
 
Applications 1
Session chair: Michael Ferguson (HPE)
 
8:50–9:10  Large-Scale and User-Friendly Exact Diagonalization in Chapel [submission | slides | video w/ Q&A]
Tom Westerhout, Mikhail I. Katsnelson (Radboud University) and Brad Chamberlain (Hewlett Packard Enterprise)
Abstract: Exact diagonalization is one of the oldest and most established numerical methods for simulation of small quantum systems. Exponential scaling of the computational resources is the main limiting factor in its applicability, and requires highly parallel implementations if one wants to consider slightly larger systems. In this talk we will discuss the implementation of a scalable and user-friendly exact diagonalization package where Chapel is used for both shared- and distributed-memory parallelism. We will talk about the architecture of our package and progress in its implementation, focusing on multi-language interoperability and usage of Singularity containers for deployment.
 
9:10–9:30  Recent Developments in the CHApel Multi-Physics Simulation Software [submission | slides | video | Q&A]
Frédéric Plante, Michael Gagnon and Éric Laurendeau (Polytechnique Montréal)
Abstract: This paper presents the recent developments to the CHApel Multi-Physics Simulation (CHAMPS) software developed at Polytechnique Montréal. This software is at its core a 2D and 3D flow simulation software relying on the Unsteady Reynolds-Averaged Navier-Stokes (URANS) equations towards application to aircraft aerodynamics. Other physics such as ice accretion and structural mechanics allow to perform aero-icing and aero-elastic simulations. New features added this year include methods to handle overset grids and to perform linear stability analyses of fluid simulations. These features are presented on concrete aircraft applications.
 
9:30–9:45  UltraLight Dark Matter in Simulations: A Chapel-Powered Eigenstate Perspective [submission | slides | video | Q&A]
Luna Zagorac, Nikhil Padmanabhan (Yale University) and Richard Easther (University of Auckland)
Abstract: A large outstanding problem in astrophysics is the nature of dark matter—the mass in the Universe which interacts gravitationally but does not couple to light. One compelling theory of dark matter is called UltraLight Dark Matter (ULDM), describing a particle with a mass m ~ 10-22 eV which could form so-called "halos" of dark matter around galaxies. In this talk, we will present (1) the ULDM halos we create and evolve with our Chapel-powered simulator chplUltra, (2) how we use Chapel to calculate the eigenstates of a given ULDM halo, and (3) one application for using these techniques to advance ULDM research.
 
 
Break
9:45–10:05  Break
 
 
Portability 1
Session chair: Simon Bourgault-Côté (Polytechnique Montréal)
 
10:05–10:25  Extending Chapel to Support Fabric Attached Memory [submission | slides | video w/ Q&A]
Amitha C, Clarete Crasta, Sharad Singhal and Brad Chamberlain (Hewlett Packard Enterprise)
Abstract: Fabric Attached Memory (FAM) is of increasing interest in HPC clusters because it enables fast access to large datasets required in High Performance Data Analytics (HPDA) and Exploratory Data Analytics (EDA). Most approaches to handling FAM force programmers either to use low-level APIs, which are difficult to program, or to rely upon abstractions from file systems or key-value stores, which make accessing FAM less attractive than other levels in the memory model due to the overhead they bring. The Chapel language is designed to allow HPC programmers to use high-level programming constructs that are easy to use, while delegating the task of managing data and compute partitioning across the cluster to the Chapel compiler and runtime. This abstract summarizes the approach to integrate FAM access within the Chapel language described in the paper.
 
10:25–10:45  Integrating Chapel programs and MPI-Based Libraries for High-performance Graph Analysis [submission | slides | video w/ Q&A]
Trevor McCrary (Georgia Institute of Technology), Karen Devine and Andrew Younge (Sandia National Laboratories)
Abstract: We identify techniques to interface Chapel programs with parallel, distributed, MPI-based libraries written in C++ without storing multiple copies of shared data. This integration enables Chapel users to take advantage of the vast array of capabilities developed in parallel numerical libraries without the memory cost of duplicated data. We demonstrate two approaches to interface Chapel code with the MPI-based graph and numerical solver libraries Grafiki and Trilinos. The first uses a single Chapel executable to call a C function that interacts with the MPI libraries; it requires Chapel users to understand the Grafiki library interfaces and link their codes with the MPI-based libraries. The second uses the Unix mmap function to allow separate Chapel and Grafiki executables to read and write to the same block of memory on a node; it maintains greater independence between the Chapel and MPI-based codes, simplifying the Chapel user's experience. We also encapsulated the second approach in Docker/Singularity containers to maximize ease of use by Chapel users. Comparisons of the two approaches using shared and distributed memory installations of Chapel show that both approaches are feasible for sharing data between Chapel and MPI-based libraries, yielding similar scalability and performance with no penalty from using mmap.
 
 
Break
10:45–11:00  Break
 
 
Keynote
Session chair: Michelle Strout (HPE)
 
11:00–12:00  Community Research Priorities for Next-Generation Scientific Computing [slides | video w/ Q&A ]
Hal Finkel (U.S. Department of Energy)
Abstract: In this talk, I’ll review recent work on programming systems sponsored by the U.S. Department of Energy’s Advanced Scientific Computing Research program and community research priorities for hardware/software co-design, scientific machine learning, data management, cybersecurity and privacy, and software development. Future work on programming systems is expected to have an impact on, and be impacted by, progress in these important areas. I will highlight specific aspects of the identified research directions that directly relate to programming systems. Finally, I will discuss recent community input on software sustainability for scientific and high-performance computing and highlight some of the requirements for future programming systems that input might imply.
Bio: Hal is a program manager for computer-science research in the US Department of Energy Office of Science's Advanced Scientific Computing Research (ASCR) program. Prior to joining ASCR, Hal was the Lead for Compiler Technology and Programming Languages at Argonne’s Leadership Computing Facility. As part of DOE's Exascale Computing Project (ECP), Hal was a PathForward technical lead and PI/Co-PI of several multi-institution activities. Hal serves as vice chair of the C++ standards committee. He also helped develop the Hardware/Hybrid Accelerated Cosmology Code (HACC), a two-time IEEE/ACM Gordon Bell Prize finalist. Hal graduated from Yale University in 2011 with a Ph.D. in theoretical physics focusing on numerical simulation of early-universe cosmology.
 
 
Break
12:00–12:15  Break
 
 
Portability 2
Session chair: Nikhil Padmanabhan (Yale University)
 
12:15–12:35  Targeting GPUs Using Chapel’s Locality and Parallelism Features [submission | slides | video w/ Q&A]
Engin Kayraklioglu, Andy Stone, David Iten, Sarah Nguyen, Michael Ferguson and Michelle Strout (Hewlett Packard Enterprise)
Abstract: Targeting GPUs using native Chapel features has been one of the most sought after features by the community. In this talk, we will discuss our vision towards targeting GPUs, the current status of the implementation and future work towards achieving this vision.
 
12:35–12:55  Accelerating CHAMPS on GPUs [submission | slides | video | Q&A]
Akihiro Hayashi (Georgia Institute of Technology), Sri Raj Paul (Intel Corporation) and Vivek Sarkar (Georgia Institute of Technology)
Abstract: In this talk, we discuss our experience in accelerating a real-world Chapel application, namely CHAMPS (CHApel Multi-Physics Simulation), on GPUs with the GPUIterator and GPUAPI modules. CHAMPS is a 3D unstructured finite-volume Reynolds Average Navier-Stokes (RANS) flow solver developed at Polytechnique Montréal and is written fully in Chapel. We use the potential flow solver in CHAMPS.

The results show our Chapel-GPU variants give significant speedups of up to 29.5x on Cori-GPU, 25.3x on Summit, and 9.1x on an AMD server compared to a baseline Chapel-CPU version on each platform.

 
 
Break
12:55–1:10  Break
 
 
Implementation and Analysis
Session chair: Josh Milthorpe (Oak Ridge National Laboratory)
 
1:10–1:30  An Introduction to GASNet-EX for Chapel Users [submission | slides | video w/ Q&A]
Dan Bonachea and Paul H. Hargrove (Lawrence Berkeley National Lab)
Abstract: Have you ever typed "export CHPL_COMM=gasnet"? If you’ve used Chapel with multi-locale support on a system without "Cray" in the model name, then you’ve probably used GASNet. Did you ever wonder what GASNet is? What GASNet should mean to you? This talk aims to answer those questions and more. Chapel has system-specific implementations of multi-locale communication for Cray-branded systems including the Cray XC and HPE Cray EX lines. On other systems, Chapel communication uses the GASNet communication library embedded in third-party/gasnet. In this talk, that third-party will introduce itself to you in the first person.
 
1:30–1:50  Compiler Optimization for Irregular Memory Accesses in Chapel [submission | slides | video w/ Q&A]
Thomas Rolinger and Alan Sussman (University of Maryland)
Abstract: The Chapel programming language and runtime provides programmers with productivity advantages for developing applications with irregular memory access patterns. Specifically, language support for PGAS-style operations and implicit remote communication lessen the burden on the programmer to reason about remote memory accesses to distributed arrays. However, these productivity benefits naturally lead programmers to write code that causes fine-grained remote communication, which poses significant performance challenges on modern computing systems. Our prior work has demonstrated that the performance of these irregular codes in Chapel can be dramatically improved by manually applying optimizations that selectively replicate remotely accessed data at runtime. In this talk, we will discuss our current efforts on bridging the gap between performance and productivity for irregular applications in Chapel by automating the selective data replication optimization. To this end, we have designed and implemented a compiler optimization that automatically identifies candidate irregular accesses using static analysis and applies transformations to produce optimized code, all without requiring user intervention. Our results show that runtime performance can be improved by as much as 52x on a Cray XC system with a low-latency interconnect and 364x on a standard Linux cluster with an Infiniband interconnect.
 
1:50–2:05  ChapelPerf: A Performance Suite for Chapel [submission | slides | video w/ Q&A]
Ricardo Jesus and Michèle Weiland (EPCC, The University of Edinburgh)
Abstract: We present ChapelPerf, the Chapel Performance Suite. ChapelPerf is a port of RAJAPerf, the RAJA Performance Suite, to Chapel. It enables the performance of Chapel to be compared to a variety of programming models, such as C++, OpenMP, RAJA, among others. We discuss our porting experience, identifying and describing the main struggles we faced. Additionally, we present early results comparing the performance of baseline sequential and parallel implementations of the RAJAPerf kernels in Chapel to the performance of reference C++ and OpenMP implementations.
 
 
Break
2:05–2:20  Break
 
 
Applications 2
Session chair: Andy Stone (HPE)
 
2:20–2:40  Implementing and Optimizing Parquet I/O in Chapel [submission | slides | video w/ Q&A]
Ben McDonald (Hewlett Packard Enterprise)
Abstract: This talk discusses changes made in Arkouda (a NumPy-like Python package with a Chapel backend server) to add support for Apache Parquet, which is a columnar file format designed for data science. The implementation uses Chapel's interoperability features to interact with Parquet's C++ API. Since Chapel does not have native support for C++ interoperability, a thin C-based wrapper library was constructed. To improve the performance of the implementation, optimizations were added to read data in batches and leverage Chapel's parallel programming features. The implementation is evaluated by comparing it against HDF5, a well-known file format for HPC workflows, which has native support in Arkouda. The results of the comparison show that, with these optimizations, Parquet can now outperform HDF5 when operating on datasets stored within a large number of files.
 
2:40–3:00  Truss Analytics Algorithms and Integration in Arkouda [submission | slides | video w/ Q&A]
Zhihui Du Joseph Patchett, Oliver Alvarado Rodriguez and David A. Bader (New Jersey Institute of Technology)
Abstract: The K-Truss of a graph is a cohesive subgraph that has been widely used for community detection in applications such as social networks and security analysis. In this paper, we first propose one optimized triangle search kernel with a few operations that can be used in both triangle counting and triangle search to replace the existing list intersection method. Based on the optimized kernel, three truss analytics algorithms, an optimized K-Truss parallel algorithm, a maximal K-Truss parallel algorithm, and a Truss decomposition parallel algorithm, are developed to efficiently enable different kinds of graph analysis. Moreover, all proposed parallel algorithms have been implemented in the highly-productive parallel language Chapel and integrated into the open-source framework Arkouda. Experimental results compared with the existing list intersection-based method show that for both synthetic and real-world graphs, the proposed method can significantly improve the performance of truss analysis on large graphs. The implemented method is publicly available from GitHub.
 
3:00–3:15  From C and Python to Chapel as My Main Programming Language [submission | slides | video w/ Q&A]
Nelson Dias (Federal University of Parana, Brazil)
Abstract: I describe a trajectory of using a number of programming languages in research, from my early days with Fortran, Pascal and Modula-2, to mainly C and Python during approximately 30 years, and then to Chapel in the last 2 years. During all of this time the desktop PC has been adequate to my processing needs; therefore, this is essentially a "Chapel at the desktop" experience report. Chapel is a very elegant language, providing the power and speed of C and Fortran, while allowing a high degree of abstraction and expressiveness that rivals Python's. I have used it in the last two years for: calculating statistics over massive turbulence datasets, implementing models for lake evaporation in hydrology, and testing some relatively simple numerical solutions of partial differential equations. Its easy portability from C, Fortran and Python allowed fast translation and re-use of my existing libraries. On the few (but not impossible to live with) shortcomings, passing functions as procedure parameters is somewhat unwieldy; re-indexing arrays in procedures is verbose; compilation could be faster; and executables are very large.
 
 
Updates from the Chapel Community
Session chair: Brad Chamberlain (HPE)
 
3:15–3:45  Coding Day Summaries
In this session, participants of the Coding Day will have the opportunity to summarize their investigations and accomplishments.
 
3:45–?:??       Open Discussion Session
This final session is designed to support open discussion and interaction among the CHIUW attendees, and provide an opportunity for lightning talks. If you would like to give a quick update abour your ongoing Chapel-related work, please let us know.
 

Questions, Concerns, Suggestions?

If you have any questions or suggestions to improve CHIUW, please comment under the public announcement on Chapel's Discourse page.

Organization

General Chair:

  • Michelle Strout, HPE
Program Committee:
  • Engin Kayraklioglu (chair), HPE
  • Josh Milthorpe (co-chair), Oak Ridge National Laboratory
  • Simon Bourgault-Côté, Polytechnique Montreal
  • Jason DeVinney, Center for Computing Sciences
  • Jim Dinan, NVidia
  • Paul Hargrove, Lawrence Berkeley National Laboratory
  • Akihiro Hayashi, Georgia Tech
  • Cathie Olschanowsky, Boise State University
  • Matthieu Parenteau, Bombardier Inc.
  • Mark Raugas, Pacific Northwest National Laboratory
  • Andy Stone, HPE
  • David Wonnacott, Haverford College
Steering Committee:
  • Brad Chamberlain, HPE
  • Mike Merrill, U.S. DOD
  • Nikhil Padmanabhan, Yale University
  • Didem Unat, Koc University

 

Call For Papers and Talks (for archival purposes)