Comparing Parallel Functional Array Languages: Programming and Performance
David van Balen, Tiziano De Matteis, Clemens Grelck, Troels Henriksen, Aaron W. Hsu, Gabriele K. Keller, Thomas Koopman, Trevor L. McDonell, Cosmin Oancea, Sven-Bodo Scholz, Artjoms Sinkarovs, Tom Smeding, Phil Trinder, Ivo Gabe de Wolff, Alexandros Nikolaos Ziogas

TL;DR
This paper systematically compares five parallel functional array languages across diverse benchmarks, demonstrating their expressiveness, portability, and competitive performance on multicore and GPU architectures.
Contribution
It provides a comprehensive comparison of five functional array languages, highlighting their expressiveness, portability, and potential for competitive performance.
Findings
Functional array code is shorter and more comprehensible than hand-optimized implementations.
Languages can generate multicore and GPU executables from a single source.
Performance of languages is competitive with conventional techniques across benchmarks.
Abstract
Parallel functional array languages are an emerging class of programming languages that promise to combine low-effort parallel programming with good performance and performance portability. We systematically compare the designs and implementations of five different functional array languages: Accelerate, APL, DaCe, Futhark, and SaC. We demonstrate the expressiveness of functional array programming by means of four challenging benchmarks, namely N-body simulation, MultiGrid, Quickhull, and Flash Attention. These benchmarks represent a range of application domains and parallel computational models. We argue that the functional array code is much shorter and more comprehensible than the hand-optimized baseline implementations because it omits architecture-specific aspects. Instead, the language implementations generate both multicore and GPU executables from a single source code base.…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsEmbedded Systems Design Techniques · Cellular Automata and Applications · Parallel Computing and Optimization Techniques
