package domainslib

  1. Overview
  2. Docs
Parallel Structures over Domains for Multicore OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

0.3.2.tar.gz
sha256=d74016fd9167de52f1515e25ea208095f9f25b4dfe277185583d8500307943a0
md5=b4c1ed2ca16b82c40de9a64989094639

README.md.html

domainslib - Parallel Programming over Multicore OCaml

domainslib provides control and data structure for parallel programming using domains.

The supported data structures are:

  • Channels

    • Channels may be shared between multiple senders and receivers.

    • Channels ensure FIFO message order.

    • Channels come in two flavours -- bounded (fixed-buffer size (>= 0) beyond which the send blocks) and unbounded.

  • Task

    • Work-stealing task pool with async/await parallelism and parallel for loop.

See examples for usage.

Installation

The library can be installed using multicore-opam, an OPAM repository of multicore specific packages.

$ opam switch create 4.12.0+domains+effects
$ opam install domainslib

Development

If you are interested in hacking on the implementation, then opam pin this repository:

First install the multicore compiler and dune:

$ opam switch create 4.12.0+domains+effects
$ opam install dune

Then, pin a clone of this repo:

$ git clone https://github.com/ocaml-multicore/domainslib
$ cd domainslib
$ opam pin add domainslib file://`pwd`
OCaml

Innovation. Community. Security.