[Pl-seminar] PL seminar schedule
Aaron Turon
turon at ccs.neu.edu
Mon Aug 23 17:31:38 EDT 2010
NEU Programming Languages Seminar presents
Aaron Turon
Northeastern University
Wednesday, 8/25
11:45am - 1:30pm
Room 366 WVH (http://www.ccs.neu.edu/home/wand/directions.html)
A scalable implementation of the join calculus
(joint work with Claudio Russo)
The join calculus is a model of concurrency that extends
message-passing: rather than receiving a message from a single
channel, code can request messages from multiple channels (a "join
pattern") in a single atomic step. Join patterns can be used to solve
a wide range of coordination problems in a simple, declarative way.
For example, there are breathtakingly direct implementations of
reader/writer locks and dining philosophers using the join calculus.
The expressiveness of the join calculus makes it attractive for taking
advantage of parallelism. Unfortunately, existing implementations of
the join calculus use coarse-grained locks to achieve the requisite
atomicity, which results in poor scalability.
In this talk, I will give an overview of the join calculus, and
present a new approach for implementing it that achieves scalability
by avoiding locks (and using fine-grained CAS operations). To support
my claims about scalability, I will give experimental results from a
C# implementation. The experiments use the join calculus to solve
several coordination problems: producer/consumers, n-way rendezvous,
mutual exclusion. In each case, the new implementation scales much
better than the lock-based approach, and has performance competitive
with the best-known *direct* solutions to the same problems. Thus, we
can significantly raise the level of abstraction (to join patterns)
without sacrificing the performance of carefully hand-coded
algorithms.
More information about the pl-seminar
mailing list