University of Cambridge > Talks.cam > Computer Laboratory Programming Research Group Seminar > Functional Abstractions for Practical and Scalable Concurrent Programming

Functional Abstractions for Practical and Scalable Concurrent Programming

Add to your list(s) Download to your calendar using vCal

If you have a question about this talk, please contact Raphael Proust.

This talk has been canceled/deleted

Functional programming languages have long been viewed as particularly well-suited for expressing concurrent computations; first-class functions and expression oriented syntax make it convenient to express concurrent threads of control, while the lack of pervasive side-effects simplifies reasoning and facilitates optimizations. As functional programming languages are applied to new domains such as programming non-cache-coherent multicores, GPUs, and compute clouds, there is a need for new concurrency abstractions that are not only simple to reason about, but also ensure good performance. My research has focused on discovering these abstractions and realizing them in modern functional language runtimes; this talk will focus on two of these.

First, I will present Rx-CML, an optimistic concurrency control mechanism for synchronous message-passing programs that simplifies the task of writing scalable programs for compute clouds. Rx-CML allows the programmers to express synchronous protocols, which are dynamically discharged asynchronously in order to hide inter-node latency. Executions that do not conform to the synchronous semantics of the protocol are dynamically detected and remediated.

Next, I will describe a new concurrency substrate design for the long-standing goal of allowing user-written schedulers in concurrent/parallel Haskell. Through the use of software transactional memory and scheduler activations, the concurrency substrate simplifies the task of building user-level schedulers, which, by construction, safely interact with other runtime system components as well as concurrency libraries.

This talk is part of the Computer Laboratory Programming Research Group Seminar series.

Tell a friend about this talk:

This talk is included in these lists:

This talk is not included in any other list

Note that ex-directory lists are not shown.

 

© 2006-2024 Talks.cam, University of Cambridge. Contact Us | Help and Documentation | Privacy and Publicity