| | |
Summary: Speculative N-Way Barriers
Lukasz Ziarek Suresh Jagannathan
Department of Computer Science; Purdue University
{lziarek,suresh}@cs.purdue.edu
Matthew Fluet Umut A. Acar
Toyota Technological Institute at Chicago
{fluet,acar}@tti-c.org
Abstract
Speculative execution is an important technique that has histori-
cally been used to extract concurrency from sequential programs.
While techniques to support speculation work well when compu-
tations perform relatively simple actions (e.g., reads and writes
to known locations), understanding speculation for multi-threaded
programs in which threads may communicate and synchronize
through multiple shared references is significantly more challeng-
ing, and is the focus of this paper.
We use as our reference point a simple higher-order concurrent
language extended with an n-way barrier and a fork/join execution
model. Our technique permits the expression guarded by the barrier
to speculatively proceed before the barrier has been satisfied (i.e.
|