Affiliation:
1. Rice Univ., Houston, TX
2. Carnegie Mellon Univ., Pittsburgh, PA
Abstract
Speculative evaluation, including leniency and futures, is often used to produce high degrees of parallelism. Understanding the performance characteristics of such evaluation, however, requires having a detailed understanding of the implementation. For example, the particular implementaion technique used to suspend and reactivate threads can have an asymptotic effect on performance. With the goal of giving the users some understanding of performance without requiring them to understand the implementation, we present a provable implementation bound for a language based on speculative evaluation. The idea is (1) to supply the users with a semantics for a language that defines abstract costs for measuring or analyzing the performance of computations, (2) to supply the users with a mapping of these costs onto runtimes on various machine models, and (3) to describe an implementation strategy of the language and prove that it meets these mappings. For this purpose we consider a simple language based on speculative evaluation. For every computation, the semantics of the language returns a directed acyclic graph (DAG) in which each node represents a unit of computation, and each edge represents a dependence. We then describe an implementation strategy of the language and show that any computation with
w
work (the number of nodes in the DAG) and
d
depth (the length of the longest path in the DAG) will run on a
p
-processor PRAM in
O
(
w
/
p
+
d
log
p
) time. The bounds are work efficient (within a constant factor of linear speedup) when there is sufficient parallelism,
w
/
d
≥
p
log
p
. These are the first time bounds we know of for languages with speculative evaluation. The main challenge is in parallelizing the necessary queuing operations on suspended threads.
Publisher
Association for Computing Machinery (ACM)
Cited by
21 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A cost-aware logical framework;Proceedings of the ACM on Programming Languages;2022-01-12
2. Fairness in responsive parallelism;Proceedings of the ACM on Programming Languages;2019-07-26
3. Heartbeat scheduling: provable efficiency for nested parallelism;ACM SIGPLAN Notices;2018-12-02
4. Heartbeat scheduling: provable efficiency for nested parallelism;Proceedings of the 39th ACM SIGPLAN Conference on Programming Language Design and Implementation;2018-06-11
5. Responsive parallel computation: bridging competitive and cooperative threading;ACM SIGPLAN Notices;2017-09-14