Closing a Source Complexity Gap between Chapel and HPX
Shreyas Atre, Chris Taylor, Patrick Diehl, Hartmut Kaiser
TL;DR
This work tackles opening the source-code complexity gap between Chapel and HPX by introducing ChplX, a source-to-source compiler that translates Chapel into ISO C++20 code that runs on the HPX runtime. It evaluates single-node performance on Arm and x86 using Heat Equation, GUPS, and STREAM benchmarks, showing parity or improvements relative to Cray Chapel and demonstrating a near-line-for-line translation with modest boilerplate. The ChplX toolchain includes a compiler, a C++ library that mirrors Chapel features, and visualization support, and it introduces inlinecxx to embed C++ code. The findings indicate that Chapel can serve as a productive frontend for ISO C++ with HPX, achieving competitive performance while substantially reducing code complexity, and point to future work in bug fixes, GPU support, and expanded language coverage.
Abstract
A previous case study measured performance vs source-code complexity across multiple languages. The case study identified Chapel and HPX provide similar performance and code complexity. This paper is the result of initial steps toward closing the source-code complexity gap between Chapel and HPX by using a source-to-source compiler. The investigation assesses the single-machine performance of both Chapel and Chplx applications across Arm and x86.
