The year 2023 has been an exciting one for the Chapel programming language community, and the Chapel/Arkouda presence at SC23 was a good indication of that excitement spreading amongst a growing user base.
The highlight at SC23 for our team was a pair of Chapel application presentations by Tom Westerhout and Scott Bachman at PAW-ATM 2023—the 6th Annual Parallel Applications Workshop, Alternatives to MPI:
Tom Westerhout, a PhD student at Radboud University, presented his
lattice-symmetriespackage that leverages Chapel to simulate small quantum systems in a paper co-authored with Brad Chamberlain. Tom reports:
Our implementation outperforms the state-of-the-art MPI-based solution by a factor of 7–8 on 32 compute nodes, or 4096 cores, and scales well through 256 nodes, or 32,768 cores.
He goes on to say that “the implementation has 3 times fewer software lines of code than the current state of the art, but is still able to handle generic Hamiltonians.” Tom indicated that his main motivation for using Chapel was that the main algorithm ended up being just seven lines of Chapel code.
Scott Bachman, a scientist at NCAR and now [C]Worthy, presented High-Performance Programming and Execution of a Coral Biodiversity Mapping Algorithm Using Chapel that he wrote in collaboration with five other co-authors including Ben Harshbarger, an engineer on the Chapel project at HPE. Scott developed this application to analyze satellite images of coral reefs in about 3 months, and now people are publishing papers based on the data being produced by this program. He talked about how he developed the program, how he evolved it to run on GPUs with some help from the Chapel GPU subteam, and how he used C interoperability to write out NetCDF files.
Both Tom and Scott said extremely positive things about how much they enjoyed programming in Chapel. Their talk slides are available from the PAW-ATM website.
Engin Kayraklioglu, leader of the GPU subteam for the Chapel project at HPE, was a co-organizer for PAW-ATM; and Michelle Strout, lead of the Chapel project at HPE and associate professor of Computer Science at the University of Arizona, led the panel at PAW-ATM titled Charting Paths to Success with Alternatives to MPI+X.
Some stories about Chapel and Arkouda resonated at SC23. Folks were quite impressed hearing that Arkouda had been clocked at nearly 9 TiB/s on 8K nodes doing a parallel radix sort in about 100 lines of Chapel code. We talked with some people whose use cases involved analyzing data from simulations that Arkouda could help with, especially once Arkouda supports the Python Array API. At both the Sparse Computation workshop and Compiler Optimization panel on Friday, the need for PGAS languages to help with sparse and graph computations was mentioned. The idea of potentially having Chapel code be a more succinct and understandable output from AI-generated parallel, distributed code was also brought up.
Learning Chapel and helping others learn about Chapel was also a topic at SC23. Michelle Strout gave a one-hour Chapel tutorial on Sunday as part of Introduction to High-Performance Parallel Distributed Computing Using Chapel, UPC++, and Coarray Fortran. Jeremiah Corrado, an engineer on the Chapel project at HPE, presented a Peachy Assignment about writing parallel and distributed 1D heat diffusion in Chapel as part of the EduHPC workshop. There were hallway discussions about a possible HPC for Data Science course based on Arkouda/Chapel, a second semester Computer Science course that introduces parallelism and data structures in Chapel, and gathering Arkouda/Chapel course materials to help build a community of Arkouda/Chapel instructors. For slides and example codes from an all-day Chapel tutorial given in October 2023, see the Chapel tutorials page. For an Arkouda tutorial, check out the half-day tutorial, Interactive Large-Scale Data and Graph Analytics, given by Oliver Alvarado Rodriguez et al. at PPoPP 2022.
Michelle, Engin, and Jeremiah really enjoyed meeting people, learning about related technologies, and sharing information about the Chapel programming language and the Arkouda data analytics framework powered by Chapel at SC23. One opportunity to hang out in a more informal setting was a meeting of the Chapel Users Group, CHUG, where we took over a couple of tables at Rhein Haus and chatted before going to the opening of the exhibits floor at SC23. The Chapel team at HPE looks forward to participating in SC24 next year in Atlanta!