Upload

Loading icon Loading...

This video is unavailable.

LVars: lattice-based data structures for deterministic parallelism (Lindsey Kuper) - RICON West 2013

Sign in to YouTube

Sign in with your Google Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to like Basho Technologies's video.

Sign in to YouTube

Sign in with your Google Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to dislike Basho Technologies's video.

Sign in to YouTube

Sign in with your Google Account (YouTube, Google+, Gmail, Orkut, Picasa, or Chrome) to add Basho Technologies's video to your playlist.

Published on Nov 22, 2013

Parallel programming is notoriously difficult. A fundamental reason for this difficulty is that programs can yield inconsistent answers, or even crash, due to unpredictable interactions between parallel tasks. But it doesn't have to be this way: deterministic-by-construction programming models offer the promise of freedom from subtle, hard-to-reproduce nondeterministic bugs in parallel code.

A common theme that emerges in the study of deterministic-by-construction systems --- from venerable models like Kahn process networks, to modern ones like the Intel Concurrent Collections system and Haskell's monad-par library --- is that the determinism of the system hinges on some notion of monotonicity. In fact, it's no coincidence that the same principle of monotonicity that CRDTs leverage to ensure eventual consistency in distributed systems can also be put to work in deterministic-by-construction parallel programming.

In this example-driven talk, I'll introduce LVars, which are data structures that enable deterministic parallel programming. LVars generalize the single-assignment variables often found in deterministic parallel languages to allow multiple assignments that are monotonically increasing with respect to a user-specified lattice of states. LVars maintain determinism by allowing only monotonic writes and "threshold" reads to and from shared data. We'll look at examples of programming in an LVar-based parallel language that is provably deterministic, and we'll explore the connection between LVars and CRDTs.

About Lindsey

Lindsey Kuper is a Ph.D. candidate in the Programming Languages Group at Indiana University, where she studies the foundations of deterministic parallel programming. She's a recidivist Mozilla Research intern and contributor to the Rust programming language, and a summer 2013 Hacker School resident. She blogs at composition.al.

Loading icon Loading...

Loading icon Loading...

Loading icon Loading...

The interactive transcript could not be loaded.

Loading icon Loading...

Loading icon Loading...

Ratings have been disabled for this video.
Rating is available when the video has been rented.
This feature is not available right now. Please try again later.

Loading icon Loading...

Loading...
Working...
to add this to Watch Later

Add to