Retrofitting Parallelism onto OCaml

04/24/2020
by   KC Sivaramakrishnan, et al.
0

OCaml is an industrial-strength, multi-paradigm programming language, widely used in industry and academia. OCaml is also one of the few modern managed system programming languages to lack support for shared memory parallel programming. This paper describes the design, a full-fledged implementation and evaluation of a mostly-concurrent garbage collector (GC) for the multicore extension of the OCaml programming language. Given that we propose to add parallelism to a widely used programming language with millions of lines of existing code, we face the challenge of maintaining backwards compatibility–not just in terms of the language features but also the performance of single-threaded code running with the new GC. To this end, the paper presents a series of novel techniques and demonstrates that the new GC strikes a balance between performance and feature backwards compatibility for sequential programs and scales admirably on modern multicore processors.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
06/29/2022

Programming Languages and Law: A Research Agenda

If code is law, then the language of law is a programming language. Lawy...
research
04/09/2023

Dependently Typing R Vectors, Arrays, and Matrices

The R programming language is widely used in large-scale data analyses. ...
research
10/31/2018

Structured Parallel Programming Language Based on True Concurrency

Based on our previous work on algebraic laws for true concurrency, we de...
research
01/16/2023

Shared memory parallelism in Modern C++ and HPX

Parallel programming remains a daunting challenge, from the struggle to ...
research
11/18/2020

RustViz: Interactively Visualizing Ownership and Borrowing

Rust is a systems programming language that guarantees memory safety wit...
research
09/15/2023

Neural Network Exemplar Parallelization with Go

This paper presents a case for exemplar parallelism of neural networks u...
research
05/09/2022

Making ProB compatible with SWI-Prolog

Even though the core of the Prolog programming language has been standar...

Please sign up or login with your details

Forgot password? Click here to reset