Affiliation:
1. Carnegie Mellon University, USA / Inria, France
2. Inria, France
Abstract
Increasing availability of multicore systems has led to greater focus on the design and implementation of languages for writing parallel programs. Such languages support various abstractions for parallelism, such as fork-join, async-finish, futures. While they may seem similar, these abstractions lead to different semantics, language design and implementation decisions, and can significantly impact the performance of end-user applications.
In this paper, we consider the question of whether it would be possible to unify various paradigms of parallel computing. To this end, we propose a calculus, called
dag calculus
, that can encode fork-join, async-finish, and futures, and possibly others. We describe dag calculus and its semantics, establish translations from the aforementioned paradigms into dag calculus. These translations establish that dag calculus is sufficiently powerful for encoding programs written in prevailing paradigms of parallelism. We present concurrent algorithms and data structures for realizing dag calculus on multicore hardware and prove that the proposed techniques are consistent with the semantics. Finally, we present an implementation of the calculus and evaluate it empirically by comparing its performance to highly optimized code from prior work. The results show that the calculus is expressive and that it competes well with, and sometimes outperforms, the state of the art.
Funder
National Science Foundation
European Research Council
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
5 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Disentanglement with Futures, State, and Interaction;Proceedings of the ACM on Programming Languages;2024-01-05
2. Automatic Parallelism Management;Proceedings of the ACM on Programming Languages;2024-01-05
3. DisLog: A Separation Logic for Disentanglement;Proceedings of the ACM on Programming Languages;2024-01-05
4. Efficient Parallel Functional Programming with Effects;Proceedings of the ACM on Programming Languages;2023-06-06
5. Contention in Structured Concurrency;Proceedings of the 22nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming;2017-01-26