ACM SIGPLAN Notices · 2011 · 73 citations · 49 references
ComputingComputer EngineeringComputer ScienceCompilersParallel ComputingProgramming LanguagesConcurrent ProgrammingParallel Computing SystemsParallel Programming ModelsRace Condition VulnerabilitiesSynchronization PrimitivesType CheckingData-race FreedomDeterministic Parallel ProgrammingIsolationNondeterminismParallel Program SemanticsParallelism ConstructsStatic SemanticsTransactional Synchronization
A number of deterministic parallel programming models with strong safety guarantees are emerging, but similar support for nondeterministic algorithms, such as branch and bound search, remains an open question. We present a language together with a type and effect system that supports nondeterministic computations with a deterministic-by-default guarantee: nondeterminism must be explicitly requested via special parallel constructs (marked nd), and any deterministic construct that does not execute any nd construct has deterministic input-output behavior. Moreover, deterministic parallel constructs are always equivalent to a sequential composition of their constituent tasks, even if they enclose, or are enclosed by, nd constructs. Finally, in the execution of nd constructs, interference may occur only between pairs of accesses guarded by atomic statements, so there are no data races, either between atomic statements and unguarded accesses (strong isolation) or between pairs of unguarded accesses (stronger than strong isolation alone). We enforce the guarantees at compile time with modular checking using novel extensions to a previously described effect system. Our effect system extensions also enable the compiler to remove unnecessary transactional synchronization. We provide a static semantics, dynamic semantics, and a complete proof of soundness for the language, both with and without the barrier removal feature. An experimental evaluation shows that our language can achieve good scalability for realistic parallel algorithms, and that the barrier removal techniques provide significant performance gains.
49
Robert D. Blumofe, Christopher F. Joerg, Bradley C. Kuszmaul et al. · 1995 · 1K citations · Full text
Edward A. Lee · Computer · 2006 · 872 citations
Composable memory transactions
Tim Harris, Simon Marlow, Simon Peyton-Jones et al. · 2005 · 716 citations
Language support for lightweight transactions
Tim Harris, Keir Fraser · ACM SIGPLAN Notices · 2014 · 638 citations
Ownership types for safe programming
Chandrasekhar Boyapati, Robert Lee, Martin Rinard · 2002 · 571 citations