Objective Caml for Multicore Architectures
Mathias Bourgoin, Benjamin Canou, Emmanuel Chailloux, Adrien Jonquet, and Philippe Wang

TL;DR
This paper discusses modifying Objective Caml to support multicore architectures by replacing its traditional garbage collector with a Stop-The-World Stop&Copy collector, enabling better multicore performance.
Contribution
It introduces a new garbage collection approach for Objective Caml that allows effective utilization of multicore processors.
Findings
Successful implementation of Stop-The-World Stop&Copy GC in Objective Caml
Improved multicore performance potential
Insights into adapting legacy languages for multicore architectures
Abstract
Objective Caml is a famous dialect of the ML family languages. It is well-known for its performance as a compiled programming language, notably thanks to its incremental generational automatic memory collection. However, for historical reasons, the latter was built for monocore processors. One consequence is the runtime library assumes there is effectively no more than one thread running at a time, which allows many optimisations for monocore architectures: very few thread mutexes are sufficient to prevent more than a single thread to run at a time. This makes memory allocation and collection quite easier. The way it was built makes it not possible to take advantage of now widespread multicore CPU architectures. This paper presents our feedback on removing Objective Caml's garbage collector and designing a "Stop-The-World Stop&Copy" garbage collector to permit threads to take…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Distributed systems and fault tolerance · Logic, programming, and type systems
