Practical Examples of Productivity and Performance in Chapel
DescriptionChapel is a programming language designed for productively expressing parallel computations. Its design and implementation permit code to be developed on multicore laptops, and then recompiled for scalable execution on clusters, the cloud, or the world's largest supercomputers. Over the past few years, Chapel has made the transition from research prototype to being used in production within applications as diverse as unstructured computational fluid dynamics (CFD), interactive data science, exact diagonalization, and branch-and-bound algorithms. In this talk, I will describe some of these applications and how they have benefitted from Chapel's feature set. I'll also introduce recent work that permits writing hybrid CPU+GPU computations using Chapel's longstanding features for expressing parallelism and locality. In doing so, I'll show how the same abstractions can be used to target a multi-core processor, a compute node with one or more GPUs, or a system with many such compute nodes, providing a viable alternative to C++ + MPI + X programming models for Exascale computing.
TimeMonday, June 2614:00 - 14:30 CEST
Computer Science, Machine Learning, and Applied Mathematics