vix.ing · top · new · best · stats

Retrofitting parallelism onto OCaml

2020/04/24 by KC Sivaramakrishnan, Stephen Dolan, Leo White +6 · 5 voices · 33 citations
Computer Science · #Cloud Computing and Resource Management #Code (set theory) #Functional logic programming #Garbage collection #Logic, programming, and type systems #Multi-core processor #Parallel Computing and Optimization Techniques #Parallelism (grammar) #Programming paradigm #Programming style #Retrofitting #cs.PL

paper · pdf · doi:10.1145/3408995

published in Proceedings of the ACM on Programming Languages 4(ICFP), 1-30 (Association for Computing Machinery) · Accepted to ICFP 2020

openalex created_date 2020/05/01 · arxiv created 2020/07/02 · arxiv updated 2020/07/03 · openalex publication_date 2020/08/02 · openalex updated_date 2026/08/05

Abstract

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.

Citations

Cited by

Discussions

Related