CHIUW 2017 — the 4th Annual Chapel Implementers and Users Workshop — was held last month in Orlando, Fla., in conjunction with IEEE IPDPS 2017. Right out of the gate, attendees heard about a number of positive trends in the annual “state of the project” talk which summarizes Chapel progress over the past year. This year’s highlights included:
- Chapel performance is competitive with hand-coded C+OpenMP for single-node workloads as demonstrated by benchmarks like the Livermore Compiler Analysis Loop Suite (LCALS).
- For key communication benchmarks like ISx and HPCC RA, Chapel performance is increasingly competitive with the MPI/SHMEM reference versions, and occasionally beats them (see Figure 1 below).
- In May, Chapel became the fifth-fastest language in the Computer Language Benchmarks Game, beating languages like Java, Fortran, Swift and Go; and trailing only C, Rust, C++ and Ada. Chapel’s entries also tend to be far more compact and readable than these competitors (see Figure 2 below).
- The past year of Chapel releases included contributions from a larger number of community contributors than any previous year.
- Several key libraries have been added during the past year, many of which were contributed by community developers: BLAS, MPI, ZeroMQ, BigInteger, Futures, Date/Time, LinearAlgebra and Owned/Shared for delete-free class objects.
- Chapel developers have closed the last major sources of compiler-introduced memory leaks.
- Chapel’s number of web-based documentation pages has grown by over 60 percent this past year.
- Chapel can now target the MCDRAM on Intel® Xeon Phi™ using standard on-clauses.
- Chapel was accepted as a Google Summer of Code organization for the second year running.
The keynote talk for CHIUW 2017 was delivered by Jonathan Dursi, a computational scientist who is currently a senior research associate in the Centre for Computational Medicine at Toronto’s Hospital for Sick Children. We invited Jonathan to speak due to his familiarity with parallel programming models and his somewhat infamous blog post, “HPC is Dying, and MPI is Killing It,” which called for more productive, powerful and modern alternatives to MPI for big scientific computing. During his CHIUW talk, titled “Chapel’s Home in the New Landscape of Scientific Frameworks (and what it can learn from the neighbours),” Jonathan started with a brief introduction to the application areas in which his research has focused — astrophysical fluids and bioinformatics. He then gave an overview of languages and notations used for scientific computing focusing particularly on alternatives to MPI such as R, Spark, Dask, TensorFlow and Julia. Along the way, he provided “lessons learned” that the Chapel community could benefit from. He then turned to Chapel with this encouraging statement:
“My opinion, as an outsider, after casting about for languages to do stuff in, is that Chapel is important, Chapel is mature, and Chapel is just getting started.
“If the scientific community is going to have frameworks for solving scientific problems that are actually designed for our problems, it’s going to come from a project like Chapel. Using MPI as a framework just isn’t sustainable as things get more complex, both on the software side and the hardware side. Big data frameworks don’t have any incentive to support scale-down — that’s not what they’re about; and they don’t have any incentive to support tightly coupled computing — again, it’s just not what they’re about. But scientists need both of these. And this is where a project like Chapel comes in.
“And the thing about Chapel is that the set of all things that are ‘projects like Chapel’ is Chapel.”
The remainder of CHIUW 2017 was devoted to technical talks from the community covering a variety of topics. Some highlights of the submitted talks included:
- A performance evaluation of Chapel using the Intel Parallel Research Kernels on Intel® Xeon™ and Xeon Phi™ processors by Engin Kayraklıoğlu from the George Washington University
- A report by Michael Chu from AMD on his team’s progress targeting GPGPUs with Chapel via the Radeon Open Compute Platform
- A talk from Ariful Azad of Lawrence Berkeley National Laboratory on his efforts to write a GraphBLAS library in Chapel
- An introduction to summarizing data streams using sketching algorithms presented by Chris Taylor from the Department of Defense
- A new compiler analysis by Jyothi Krishna V S from IIT Madras on identifying variables in Chapel programs that may be used by a parallel task after they were freed by their parent task
- A report on targeting Chapel to the OpenFabrics libfabric API by Cray’s Sung-Eun Choi
The day wrapped up with a new lightning talks session featuring impromptu seven-minute talks from the community. Some of the featured topics included data-centric profiling of Chapel (Hui Zhang, University of Maryland), using MPI from within Chapel programs (Nikhil Padmanabhan, Yale University) and Chapel’s plan for supporting a package manager (Ben Albrecht, Cray). Slides from the day’s talks are archived on the CHIUW 2017 website.
In addition to the great talks featured at the workshop, the CHIUW audience was terrific this year. Apart from the speakers and several past CHIUW attendees, there were several new faces in the audience. During the day, several people commented that the workshop was one of the liveliest sessions that they’d attended at IPDPS. Notably, there were still around two dozen people in the audience at the end of the day — no mean feat for the Friday afternoon of a weeklong conference.
Yet for those who still had energy, we also held our annual CHIUW code camp on Saturday morning, providing an opportunity for community members to pair up to discuss open questions and strategize. This year’s session brought in a half-dozen non-Cray attendees and led to discussions on user-defined domain maps, re-architecting the Chapel launcher code base, debugging Chapel executions on AWS EC2, and how to identify research problems that might be of interest to students setting out on their Ph.D.s.