|Title||:||Effective Concurrency and Parallelism in Multicore OCaml|
|Speaker||:||K C Sivaramakrishnan (University of Cambridge)|
|Details||:||Thu, 10 Nov, 2016 11:00 AM @ BSB 361|
|Abstract:||:||OCaml is an industrial strength, statically typed, functional programming
language in the tradition of ML family of languages that includes Standard ML
and Haskell. Its combination of expressiveness, pragmatism and robust
performance has found favor with many industrial users including Jane Street,
Docker (Docker for Mac app) and Facebook (Infer, Flow, Hack, Reason). Notable
open source projects built on OCaml include MirageOS library operating system
and Coq proof assistant.
For all its strength, OCaml lacks a few key features, primary of which is the support for shared memory parallelism. In this talk, I will describe our efforts to bring native support for concurrency and parallelism in OCaml. Concurrency in Multicore OCaml is expressed through algebraic effects and their handlers, an exciting programming construct for expressing and reasoning about effects in a pure language. Algebraic effects permit expressive concurrency libraries without tying the language to particular implementation.
The parallel programming model is built on the notion of composable data structures in the spirit of software transactional memory (STM). But unlike STM, we retain lock-freedom and the ability to exploit hardware transaction support recently introduced in off-the-shelf multicore processors. The runtime features a novel GC with a thread-local private heap strategy that optimizes for the generational nature of the mostly-functional workloads.
Brief Bio KC Sivaramakrishnan is a 1851 and Darwin Research Fellow in the University of Cambridge Computer Laboratory and the Technical Director of OCaml Labs. He is interested in the design, implementation and verification of concurrent functional programming languages targeting scalable platforms such as many-core processors and compute clouds. He leads the Multicore OCaml project which aims to bring native support for concurrency and parallelism to OCaml, and Quelea project for declarative programming over eventually consistent distributed stores. Before coming to Cambridge, he obtained an MS and a PhD in computer science from Purdue University. At Purdue, he developed MultiMLton, a scalable multicore extension of MLton Standard ML compiler. He has also spent summers in Samsung Research America and Microsoft Research Cambridge where he prototyped novel concurrency abstractions in Glasgow Haskell Compiler. He is occasionally known to write at http://kcsrk.info/blog.