Skip to content

dhil/ocaml-multicore

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Multicore OCaml

A concurrent and shared-memory parallel extension of the OCaml compiler.

Multicore OCaml cleanly separates abstractions for concurrency (overlapped execution) from parallelism (simultaneous execution). Concurrency is expressed through effect handlers and parallelism through domains. Much of the work in supporting shared memory parallelism is the development of a mostly-concurrent, generational, mark-and-sweep collector that strikes a balance between single-threaded performance and feature backwards compatibility, and multicore scalability.

See the wiki for more resources.

Variants

  • Parallel Minor GC (default) -- A variant that performs stop-the-world parallel minor collection. The branch is parallel_minor_gc.
  • Concurrent Minor GC -- A variant that garbage collects each domain's minor heap concurrently. The branch is master.
  • Parallel Minor GC + No effect syntax -- This branch does not have syntax extension for effects (but includes the compiler and runtime system changes). The branch is no-effect-syntax. This branch is useful to install ppx libraries.

Installation

If you want to try out Multicore OCaml, the easiest way is to install the compiler using OPAM.

Parallel programming examples are available in the domainslib library.

Effect handler (concurrent programming) examples are available in effects-examples repo.

Notes

The original README.adoc file has been moved to README.stock.adoc.

About

Multicore OCaml

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • OCaml 81.9%
  • C 11.2%
  • Shell 2.7%
  • Assembly 1.1%
  • Standard ML 1.1%
  • Makefile 1.0%
  • Other 1.0%