Objective Caml for Multicore Architectures

06/10/2020
by   Mathias Bourgoin, et al.
0

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 advantage of multicore architectures.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/11/2020

Trash Talk: Accelerating Garbage Collection on Integrated GPUs is Worthless

Systems integrating heterogeneous processors with unified memory provide...
research
10/14/2020

Performance Analysis of a Quantum Monte Carlo Application on Multiple Hardware Architectures Using the HPX Runtime

This paper describes how we successfully used the HPX programming model ...
research
05/07/2018

EngineCL: Usability and Performance in Heterogeneous Computing

Heterogeneous systems composed by a CPU and a set of hardware accelerato...
research
10/03/2013

Cudagrind: A Valgrind Extension for CUDA

Valgrind, and specifically the included tool Memcheck, offers an easy an...
research
04/08/2021

A Proposal for an Interactive Shell Based on a Typed Lambda Calculus

This paper presents Favalon, a functional programming language built on ...
research
05/12/2020

Porting and optimizing UniFrac for GPUs

UniFrac is a commonly used metric in microbiome research for comparing m...
research
10/03/2021

Garbage Collection Makes Rust Easier to Use: A Randomized Controlled Trial of the Bronze Garbage Collector

Rust is a general-purpose programming language that is both type- and me...

Please sign up or login with your details

Forgot password? Click here to reset