I-structures: data structures for parallel computing
ACM Transactions on Programming Languages and Systems (TOPLAS)
The implementation of the Cilk-5 multithreaded language
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Concurrent programming in ML
QuickCheck: a lightweight tool for random testing of Haskell programs
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
A stream compiler for communication-exposed architectures
Proceedings of the 10th international conference on Architectural support for programming languages and operating systems
Local Reasoning about Programs that Alter Data Structures
CSL '01 Proceedings of the 15th International Workshop on Computer Science Logic
Designing Multithreaded Algorithms for Breadth-First Search and st-connectivity on the Cray MTA-2
ICPP '06 Proceedings of the 2006 International Conference on Parallel Processing
Parallel Programmability and the Chapel Language
International Journal of High Performance Computing Applications
Implicitly-threaded parallelism in Manticore
Proceedings of the 13th ACM SIGPLAN international conference on Functional programming
Communications of the ACM - Rural engineering development
A language design for concurrent processes
AFIPS '68 (Spring) Proceedings of the April 30--May 2, 1968, spring joint computer conference
Beyond nested parallelism: tight bounds on work-stealing overheads for parallel futures
Proceedings of the twenty-first annual symposium on Parallelism in algorithms and architectures
Semantics Engineering with PLT Redex
Semantics Engineering with PLT Redex
Parallel programming must be deterministic by default
HotPar'09 Proceedings of the First USENIX conference on Hot topics in parallelism
Seq no more: better strategies for parallel Haskell
Proceedings of the third ACM Haskell symposium on Haskell
Concurrent programming with revisions and isolation types
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Scientific Programming - Exploring Languages for Expressing Medium to Massive On-Chip Parallelism
A monad for deterministic parallelism
Proceedings of the 4th ACM symposium on Haskell
Prettier concurrency: purely functional concurrent revisions
Proceedings of the 4th ACM symposium on Haskell
Deterministic parallel random-number generation for dynamic-multithreading platforms
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
Logic and lattices for distributed programming
Proceedings of the Third ACM Symposium on Cloud Computing
Folding of tagged single assignment values for memory-efficient parallelism
Euro-Par'12 Proceedings of the 18th international conference on Parallel Processing
Freeze after writing: quasi-deterministic parallel programming with LVars
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
Programs written using a deterministic-by-construction model of parallel computation are guaranteed to always produce the same observable results, offering programmers freedom from subtle, hard-to-reproduce nondeterministic bugs that are the scourge of parallel software. We present LVars, a new model for deterministic-by-construction parallel programming that generalizes existing single-assignment models to allow multiple assignments that are monotonically increasing with respect to a user-specified lattice. LVars ensure determinism by allowing only monotonic writes and "threshold" reads that block until a lower bound is reached. We give a proof of determinism and a prototype implementation for a language with LVars and describe how to extend the LVars model to support a limited form of nondeterminism that admits failures but never wrong answers.