Linearizability: a correctness condition for concurrent objects
ACM Transactions on Programming Languages and Systems (TOPLAS)
Algorithms for scalable synchronization on shared-memory multiprocessors
ACM Transactions on Computer Systems (TOCS)
Proceedings of the fourteenth annual ACM symposium on Principles of distributed computing
The reflexive CHAM and the join-calculus
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Simple, fast, and practical non-blocking and blocking concurrent queue algorithms
PODC '96 Proceedings of the fifteenth annual ACM symposium on Principles of distributed computing
Nonblocking algorithms and preemption-safe locking on multiprogrammed shared memory multiprocessors
Journal of Parallel and Distributed Computing
Proceedings of the ACM 2000 conference on Java Grande
Implicit Typing à la ML for the Join-Calculus
CONCUR '97 Proceedings of the 8th International Conference on Concurrency Theory
The Join Calculus: A Language for Distributed Mobile Programming
Applied Semantics, International Summer School, APPSEM 2000, Caminha, Portugal, September 9-15, 2000, Advanced Lectures
Nonblocking k-compare-single-swap
Proceedings of the fifteenth annual ACM symposium on Parallel algorithms and architectures
Modern concurrency abstractions for C#
ACM Transactions on Programming Languages and Systems (TOPLAS)
Composable memory transactions
Proceedings of the tenth ACM SIGPLAN symposium on Principles and practice of parallel programming
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
The java.util.concurrent synchronizer framework
Science of Computer Programming - Special issue: Concurrency and synchronization in Java programs
Join patterns for visual basic
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Proceedings of the 14th ACM SIGPLAN international conference on Functional programming
The Art of Multiprocessor Programming
The Art of Multiprocessor Programming
PADL'07 Proceedings of the 9th international conference on Practical Aspects of Declarative Languages
COORDINATION'10 Proceedings of the 12th international conference on Coordination Models and Languages
Reagents: expressing and composing fine-grained concurrency
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Control flow analysis for the join calculus
SAS'12 Proceedings of the 19th international conference on Static Analysis
Hi-index | 0.00 |
Coordination can destroy scalability in parallel programming. A comprehensive library of scalable synchronization primitives is therefore an essential tool for exploiting parallelism. Unfortunately, such primitives do not easily combine to yield solutions to more complex problems. We demonstrate that a concurrency library based on Fournet and Gonthier's join calculus can provide declarative and scalable coordination. By declarative, we mean that the programmer needs only to write down the constraints of a coordination problem, and the library will automatically derive a correct solution. By scalable, we mean that the derived solutions deliver robust performance both as the number of processors increases, and as the complexity of the coordination problem grows. We validate our claims empirically on seven coordination problems, comparing our generic solution to specialized algorithms from the literature.