Proceedings Article10.1145/1806596.1806603
Safe programmable speculative parallelism
Prakash Prabhu,Ganesan Ramalingam,Kapil Vaswani +2 more
- 05 Jun 2010
- Vol. 45, Iss: 6, pp 50-61
TL;DR: This paper presents a core language with speculation constructs and mutable state and presents a formal operational semantics for the language, which uses the semantics to define the notion of a correct speculative execution as one that is equivalent to a non-speculative execution.
read more
Abstract: Execution order constraints imposed by dependences can serialize computation, preventing parallelization of code and algorithms. Speculating on the value(s) carried by dependences is one way to break such critical dependences. Value speculation has been used effectively at a low level, by compilers and hardware. In this paper, we focus on the use of speculation by programmers as an algorithmic paradigm to parallelize seemingly sequential code.We propose two new language constructs, speculative composition and speculative iteration. These constructs enable programmers to declaratively express speculative parallelism in programs: to indicate when and how to speculate, increasing the parallelism in the program, without concerning themselves with mundane implementation details.We present a core language with speculation constructs and mutable state and present a formal operational semantics for the language. We use the semantics to define the notion of a correct speculative execution as one that is equivalent to a non-speculative execution. In general, speculation requires a runtime mechanism to undo the effects of speculative computation in the case of mis predictions. We describe a set of conditions under which such rollback can be avoided. We present a static analysis that checks if a given program satisfies these conditions. This allows us to implement speculation efficiently, without the overhead required for rollbacks.We have implemented the speculation constructs as a C# library, along with the static checker for safety. We present an empirical evaluation of the efficacy of this approach to parallelization.
read more
Chat with Paper
AI Agents for this Paper
Find similar papers on Google Scholar, PubMed and Arxiv
Write a critical review of this paper
Analyze citations of this paper to find unaddressed research gaps
Citations
SpecuSym: speculative symbolic execution for cache timing leak detection
Shengjian Guo,Yueqi Chen,Peng Li,Yueqiang Cheng,Huibo Wang,Meng Wu,Zhiqiang Zuo +6 more
- 27 Jun 2020
TL;DR: This work proposes a new symbolic execution based method, Specusym, for precisely detecting cache timing leaks introduced by speculative execution and implemented SpecuSym atop KLEE, which successfully detected from 2 to 61 leaks in 6 programs under 3 different cache settings.
46
SpiceC: scalable parallelism via implicit copying and explicit commit
Min Feng,Rajiv Gupta,Yi Hu +2 more
- 12 Feb 2011
TL;DR: The authors' compiler generated implementations of SpiceC achieve speedups ranging from 2x to 18x on a 24 core system and seven benchmarks are evaluated using seven benchmarks of which four are parallelized speculatively.
46
Gradual synthesis for static parallelization of single-pass array-processing programs
Grigory Fedyukovich,Maaz Bin Safeer Ahmad,Rastislav Bodik +2 more
- 14 Jun 2017
TL;DR: A novel approach, called GRASSP, that automatically synthesizes parallel single-pass array-processing programs by treating the given serial versions as specifications and certifies the results using constrained Horn solving, and it is shown that such parallelization can be performed efficiently.
45
A Survey on Thread-Level Speculation Techniques
TL;DR: This work introduces the technique, presents a taxonomy of TLS solutions, and summarizes and put into perspective the most relevant advances in this field.
References
A view of the parallel computing landscape
Krste Asanovic,Rastislav Bodik,James Demmel,Tony M. Keaveny,Kurt Keutzer,John Kubiatowicz,Nelson Morgan,David A. Patterson,Koushik Sen,John Wawrzynek,David Wessel,Katherine Yelick +11 more
- 01 Oct 2009
TL;DR: Writing programs that scale with increasing numbers of cores should be as easy as writing programs for sequential computers.
740
•Book
Transactional Information Systems: Theory, Algorithms, and the Practice of Concurrency Control and Recovery
Marc H. Scholl
- 30 May 2001
TL;DR: The authors begin with a broad look at the role of transactional technology in today's economic and scientific endeavors, then delve into critical issues faced by all practitioners, presenting today's most effective techniques for controlling concurrent access by multiple clients, recovering from system failures, and coordinating distributed transactions.
672
Safe futures for Java
Adam Welc,Suresh Jagannathan,Antony L. Hosking +2 more
- 12 Oct 2005
TL;DR: The definition and implementation of safe futures for Java are explored and it is indicated that for programs with modest mutation rates on shared data, applications can use futures to profitably exploit parallelism, without sacrificing safety.
Mitosis compiler: an infrastructure for speculative threading based on pre-computation slices
Carlos Garcia Quinones,Carlos Madriles,Jesús Sánchez,Pedro Marcuello,Antonio González,Dean M. Tullsen +5 more
- 12 Jun 2005
TL;DR: The Mitosis compiler is presented, which partitions applications into speculative threads, with special emphasis on applications for which conventional parallelizing approaches fail, and the most important optimizations included are branch pruning, memory and register dependence speculation, and early thread squashing.
•Journal Article
Purity and side effect analysis for Java Programs
Alexandru Salcianu,Martin Rinard +1 more
TL;DR: A purity and side effect analysis for Java programs is presented in this article, which is built on top of a combined pointer and escape analysis, and is able to determine that methods are pure even when the methods mutate the heap, provided they mutate only new objects.
191