skip to content

Department of Computer Science and Technology

A group of systems researchers here, along with their industrial and academic collaborators, are celebrating receiving a prestigious award for a breakthrough that took them six years to achieve.

The OCaml Labs team has just collected a Distinguished Paper award from the International Conference on Functional Programming 2020 for their paper Retrofitting Parallelism onto OCaml.

The award honours their work in solving a hugely challenging issue: adding parallelism to a widely-used functional programming language with millions of lines of existing code, while also maintaining backwards compatibility.

The OCaml Labs project has been running since 2012, with the aim of bringing functional programming language OCaml out of obscurity and encourage its use in industry. In that, it has been successful with OCaml today playing an increasingly important role in industrial applications because of its high levels of reliability and precision: it is the language of choice for building major verification tools (Coq, Why3, AltErgo, Imandra) and industrial users of it include Jane Street, Microsoft and Facebook.

The language was originally designed by a team at Inria, the French National Institute for Research in Digital Science and Technology. It has had a reputation for being one of the fastest sequential functional programming languages, i.e. a language that runs on just one Computer Processing Unit (CPU) core. But thus far, it has also been one of the few modern managed system programming languages to lack support for shared memory parallel programming. 

Dr Anil MadhavapeddyAs most computers now are multi-core, the researchers were eager to solve this issue in order to achieve their aim of developing the language to offer increased levels of correctness and functional programming as a language platform and make it a safer and more reliable tool for significant industrial users.

Project leader Dr Anil Madhavapeddy (pictured right) says: "OCaml is a beautiful language to express complex algorithms in, and the challenge has been for us to preserve that elegance while finding an efficient way to make it multicore. 

"It is a language used in precision engineering, and we also had to make sure we didn't compromise on that safety. After six years and a lot of dead ends, we've finally got it figured out. This is a pretty big breakthrough and means we've knocked down the final barrier to OCaml becoming a really mainstream industrial programming language."

The researchers are now working with the OCaml development team to see their solution implemented in OCaml 5.0, which is due for release at the end of 2021.

OCaml Labs is a collaborative project involving researchers here and in India - the paper's first author, KC Sivaramakrishnan (pictured right), was a postdoctoral researcher here who is now a Professor at IIT, Madras.

There are also ongoing industrial collaborations with the quantitative trading firm Jane Street and the Tezos Foundation (Tezos is an open-source blockchain protocol for assets and applications), both of whom gave grants to support the work. 

  • KC Sivaramakrishnan, Stephen Dolan, Leo White, Sadiq Jaffer, Tom Kelly, Anmol Sahoo, Sudha Parimala, Atul Dhiman, and Anil Madhavapeddy. 2020 Retrofitting parallelism onto OCaml Proc. ACM Program. Lang. 4, ICFP, Article 113 (August 2020), 30 pages. https://doi.org/10.1145/3408995.

Published by Rachel Gardner on Wednesday 16th September 2020