Title | : | Low-latency, high-performance garbage collector for Multicore OCaml |
Speaker | : | KC Sivaramakrishnan (University of Cambridge, UK) |
Details | : | Mon, 9 Oct, 2017 3:00 PM @ A M Turing Hall |
Abstract: | : | OCaml is a 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 favour with many industrial users including Jane Street,
Microsoft (Project Everest), Docker (Docker for Mac app) and Facebook (Infer,
Flow, Hack, Reason). For all its strength, OCaml lacks a few key features,
primary of which is the support for shared memory parallelism. The most important piece of the multicore-aware runtime OCaml is the garbage collector (GC). In a mostly functional language like OCaml, it is desirable to have each domain (our unit of parallelism) collect its own local garbage independently. Given that OCaml is commonly used for writing latency sensitive code such as trading systems, UIs, or networked unikernels, it is also desirable to minimise the stop-the-world phases in the GC. Although obvious, the difficulty is to make this work in the presence of mutations and concurrency. In this talk, I will present the overall design of Multicore OCaml GC, but also deep dive into a few of the interesting techniques that make it work. Bio: K C Sivaramakrishnan is a Post-doctoral Research Associate under the OCaml Labs initiative at the University of Cambridge Computer Lab, an 1851 Research Fellow and a Research Fellow at Darwin College, Cambridge. He is also a member of the Network and Operating Systems group. KC is interested in the design and implementation of concurrent functional programming languages targeting scalable platforms such as many-core processors and compute clouds. His research spans programming models, compilers, static analysis, schedulers, threading systems, and memory management. Before coming to Cambridge, KC was a graduate student at Purdue University where he obtained an MS and a PhD degree in Computer Science under the supervision of the wonderful Prof. Suresh Jagannathan. At Purdue, he led the MultiMLton and Quelea projects. Before that, he obtained BEng degree in Computer Science and Engineering from Anna University, India. |