Objective Caml for Multicore Architectures

This project aims at allowing Objective Caml to take advantage of multicore architectures, notably those now commonly used in laptops and desktop PC.


  • 2010 spring-summer (current work, in progress) : (ocaml-3.12-svn) “from scratch”, making the runtime library fully reentrant, first without threads preoccupation
  • early 2010 : (ocaml-3.11.1) adaptation to work on x84-32 and x84-64, with Linux and Mac OS X. Fairly unstable.
  • late 2009 : (ocaml-3.11.1) adaptation of the modified runtime library for ocaml-3.11.1
  • mid/late 2009 : (ocaml-3.10.2) several working implementations for X86-64 (with or without partial collections)
  • late 2008 : (ocaml-3.10.2) first unsafe implementation for X86-64 architecture, running Linux


It started in 2008 as an OCaml Summer Project 2008 funded by Jane Street Capital. It has continued since then.


Warning : For testing purpose only. It should not be used for production.

Some additional versions may appear in the download directory. If you choose to test/use them, you should be sure to know what you do.

November 4th, 2009 version

Download link

without partial collection


  • (feature) growing capable shared heap : if a huge allocation is needed, the heap grows such that it becomes possible (i.e. with system malloc limitation only) instead of going into an endless broken loop
  • (feature) limited shrinking : the shared heap can never become smaller than its initial size
with partial collection


  • (feature) partial collection enabled : partial collection when the shared heap has more free space than required for flushing full pages


OCaml4MultiCore is a free software under the CeCILL-B license.


Supervisor : Emmanuel Chailloux

Co-supervisor / co-developer : Benjamin Canou

Co-supervisor / co-developer : Philippe Wang

Developer : Mathias Bourgoin

Former developer : Adrien Jonquet

Contact : dev {at} ocmc.algo-prog.info

ocaml_for_multicore_architectures.txt · Last modified: 2010/07/02 16:56 by philippe