Comparing Parallel Functional Array Languages: Programming and Performance

Fuente: arXiv
Salvato in:
Dettagli Bibliografici
Autori principali: van Balen, David, De Matteis, Tiziano, Grelck, Clemens, Henriksen, Troels, Hsu, Aaron W., Keller, Gabriele K., Koopman, Thomas, McDonell, Trevor L., Oancea, Cosmin, Scholz, Sven-Bodo, Sinkarovs, Artjoms, Smeding, Tom, Trinder, Phil, de Wolff, Ivo Gabe, Ziogas, Alexandros Nikolaos
Natura: Preprint
Pubblicazione: 2025
Soggetti:
Accesso online:
Tags: Aggiungi Tag
Nessun Tag, puoi essere il primo ad aggiungerne!!
_version_ 1866908362576232448
author van Balen, David
De Matteis, Tiziano
Grelck, Clemens
Henriksen, Troels
Hsu, Aaron W.
Keller, Gabriele K.
Koopman, Thomas
McDonell, Trevor L.
Oancea, Cosmin
Scholz, Sven-Bodo
Sinkarovs, Artjoms
Smeding, Tom
Trinder, Phil
de Wolff, Ivo Gabe
Ziogas, Alexandros Nikolaos
author_facet van Balen, David
De Matteis, Tiziano
Grelck, Clemens
Henriksen, Troels
Hsu, Aaron W.
Keller, Gabriele K.
Koopman, Thomas
McDonell, Trevor L.
Oancea, Cosmin
Scholz, Sven-Bodo
Sinkarovs, Artjoms
Smeding, Tom
Trinder, Phil
de Wolff, Ivo Gabe
Ziogas, Alexandros Nikolaos
contents 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. Hence, we further argue that functional array code could more easily be ported to, and optimized for, new parallel architectures than conventional implementations of numerical kernels. We demonstrate this potential by reporting the performance of the five parallel functional array languages on a total of 39 instances of the four benchmarks on both a 32-core AMD EPYC 7313 multicore system and on an NVIDIA A30 GPU. We explore in-depth why each language performs well or not so well on each benchmark and architecture. We argue that the results demonstrate that mature functional array languages have the potential to deliver performance competitive with the best available conventional techniques.
format Preprint
id arxiv_https___arxiv_org_abs_2505_08906
institution arXiv
publishDate 2025
record_format arxiv
spellingShingle Comparing Parallel Functional Array Languages: Programming and Performance
van Balen, David
De Matteis, Tiziano
Grelck, Clemens
Henriksen, Troels
Hsu, Aaron W.
Keller, Gabriele K.
Koopman, Thomas
McDonell, Trevor L.
Oancea, Cosmin
Scholz, Sven-Bodo
Sinkarovs, Artjoms
Smeding, Tom
Trinder, Phil
de Wolff, Ivo Gabe
Ziogas, Alexandros Nikolaos
Programming Languages
Distributed, Parallel, and Cluster Computing
Performance
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. Hence, we further argue that functional array code could more easily be ported to, and optimized for, new parallel architectures than conventional implementations of numerical kernels. We demonstrate this potential by reporting the performance of the five parallel functional array languages on a total of 39 instances of the four benchmarks on both a 32-core AMD EPYC 7313 multicore system and on an NVIDIA A30 GPU. We explore in-depth why each language performs well or not so well on each benchmark and architecture. We argue that the results demonstrate that mature functional array languages have the potential to deliver performance competitive with the best available conventional techniques.
title Comparing Parallel Functional Array Languages: Programming and Performance
topic Programming Languages
Distributed, Parallel, and Cluster Computing
Performance
url https://arxiv.org/abs/2505.08906