package domainslib

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

Install

Dune Dependency

Authors

Maintainers

Sources

0.4.2.tar.gz
md5=a079b8b5b676e8d38d713f02b25b14db

Description

Tags

org:ocamllabs

Published: 01 Mar 2022

README

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`

Dependencies (2)

  1. dune >= "1.8"
  2. ocaml >= "5.0"

Dev Dependencies (1)

  1. mirage-clock-unix with-test

Used by (2)

  1. forester < "2.1"
  2. lwt_domain < "0.3.0"

Conflicts

None