Master Engineer, Hewlett Packard Enterprise
Compiling Chapel: Keys to Making Parallel Programming Productive at Scale
Chapel is a parallel language designed to support productive programming from laptops to supercomputers. Unlike typical general-purpose approaches to large-scale computing, Chapel supports a global namespace and a global view of control. These make programming at scale more productive and natural by avoiding the need to utilize a Single Program, Multiple Data (SPMD) approach. Chapel is being developed as portable, open- source software and has demonstrated its ability to match or beat C/C++/MPI/OpenMP performance using code that’s as easy to read as Python or Swift.
In this talk, I will introduce some of Chapel’s key features for those who are new to the language. However, most of the talk will focus on unique aspects of compiling Chapel. I will illustrate the transformations and analyses we use to implement Chapel’s global view of data and control. I will also describe some optimizations that make use of Chapel’s feature set to improve performance without sacrificing ease-of-use. In doing so, I will argue that when designed well, a productive language can enhance a compiler’s ability to achieve performance and scalability rather than thwarting it. I’ll wrap up by touching on some upcoming challenges for the Chapel compiler, including code generation for GPUs, reducing compilation time, and supporting interactive programming.
Bradford Chamberlain is a Master Engineer at Hewlett Packard Enterprise where he serves as the technical lead for the design and development of the Chapel parallel programming language. He has spent most of his professional career as a Principal Engineer at Cray Inc. where he was a founding member of the Chapel project. Brad earned his Ph.D. in Computer Science & Engineering from the University of Washington in 2001 and remains associated with the department as an affiliate professor of the Paul G. Allen School. His research and development efforts have been motivated primarily by the notion that scalable parallel programming is an endeavor worthy of first-class language support rather than simply collections of libraries, pragmas, and extensions. Brad has served on the program committees of most major conferences and workshops in parallel and distributed computing, and he is currently serving as the Research Papers chair for ISC 2021.