domainslib

Parallel Structures over Domains for Multicore OCaml
README

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`
Install
Published
23 Dec 2021
Sources
0.4.0.tar.gz
md5=8ae1c816334f7c374bfb955a7bad1759
Dependencies
Reverse Dependencies
lwt_domain
< "0.3.0"