并行函数式数组语言的比较:编程与性能
Computer Science > Programming Languages
arXiv:2505.08906 (cs) [Submitted on 13 May 2025]
Title:Comparing Parallel Functional Array Languages: Programming and Performance
Authors: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 View a PDF of the paper titled Comparing Parallel Functional Array Languages: Programming and Performance, by David van Balen and 13 other authors View PDF
Abstract:并行函数式数组语言是一类新兴的编程语言,有望将低成本的并行编程与良好的性能和性能可移植性结合起来。我们系统地比较了五种不同的函数式数组语言的设计和实现:Accelerate, APL, DaCe, Futhark, 和 SaC。我们通过四个具有挑战性的基准测试来展示函数式数组编程的表达能力,即 N-body simulation, MultiGrid, Quickhull, 和 Flash Attention。这些基准测试代表了一系列应用领域和并行计算模型。我们认为,函数式数组代码比手工优化的基线实现更短、更易于理解,因为它省略了特定于架构的方面。相反,语言实现从单个源代码库生成多核和 GPU 可执行文件。因此,我们进一步认为,与数值内核的传统实现相比,函数式数组代码可以更容易地移植到新的并行架构并针对其进行优化。我们通过报告五种并行函数式数组语言在32核 AMD EPYC 7313 多核系统和 NVIDIA A30 GPU 上,四个基准测试的共 39 个实例上的性能来证明这种潜力。我们深入探讨了每种语言在每个基准测试和架构上表现良好或不佳的原因。我们认为,结果表明,成熟的函数式数组语言有潜力提供与最佳可用传统技术相媲美的性能。 Subjects: | Programming Languages (cs.PL); Distributed, Parallel, and Cluster Computing (cs.DC); Performance (cs.PF) ---|--- Cite as: | arXiv:2505.08906 [cs.PL] (or arXiv:2505.08906v1 [cs.PL] for this version) https://doi.org/10.48550/arXiv.2505.08906 Focus to learn more arXiv-issued DOI via DataCite (pending registration)
Submission history
From: Cosmin Oancea [view email] [v1] Tue, 13 May 2025 18:54:36 UTC (1,285 KB) Full-text links:
Access Paper:
View a PDF of the paper titled Comparing Parallel Functional Array Languages: Programming and Performance, by David van Balen and 13 other authors
view license
Current browse context:
cs.PL
< prev | next >
new | recent | 2025-05
Change to browse by:
cs cs.DC cs.PF
References & Citations
a export BibTeX citation Loading...
BibTeX formatted citation
× loading... Data provided by:
Bookmark
[ ](https://arxiv.org/abs/<http:/www.bibsonomy.org/BibtexHandler?requTask=upload&url=https://arxiv.org/abs/2505.08906&description=Comparing Parallel Functional Array Languages: Programming and Performance> "Bookmark on BibSonomy") [
](https://arxiv.org/abs/<https:/reddit.com/submit?url=https://arxiv.org/abs/2505.08906&title=Comparing Parallel Functional Array Languages: Programming and Performance> "Bookmark on Reddit")
Bibliographic Tools
Bibliographic and Citation Tools
Bibliographic Explorer Toggle Bibliographic Explorer (What is the Explorer?) Connected Papers Toggle Connected Papers (What is Connected Papers?) Litmaps Toggle Litmaps (What is Litmaps?) scite.ai Toggle scite Smart Citations (What are Smart Citations?) Code, Data, Media
Code, Data and Media Associated with this Article
alphaXiv Toggle alphaXiv (What is alphaXiv?) Links to Code Toggle CatalyzeX Code Finder for Papers (What is CatalyzeX?) DagsHub Toggle DagsHub (What is DagsHub?) GotitPub Toggle Gotit.pub (What is GotitPub?) Huggingface Toggle Hugging Face (What is Huggingface?) Links to Code Toggle Papers with Code (What is Papers with Code?) ScienceCast Toggle ScienceCast (What is ScienceCast?) Demos
Demos
Replicate Toggle Replicate (What is Replicate?) Spaces Toggle Hugging Face Spaces (What is Spaces?) Spaces Toggle TXYZ.AI (What is TXYZ.AI?) Related Papers
Recommenders and Search Tools
Link to Influence Flower Influence Flower (What are Influence Flowers?) Core recommender toggle CORE Recommender (What is CORE?)
- Author
- Venue
- Institution
- Topic
About arXivLabs
arXivLabs: experimental projects with community collaborators
arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website. Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them. Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs. Which authors of this paper are endorsers? | Disable MathJax (What is MathJax?)
-
contact arXivClick here to contact arXiv Contact
-
subscribe to arXiv mailingsClick here to subscribe Subscribe
-
arXiv Operational Status Get status notifications via email or slack