RFCs VS domainslib

Compare RFCs vs domainslib and see what are their differences.

RFCs

Design discussions about the OCaml language (by ocaml)

domainslib

Parallel Programming over Domains (by ocaml-multicore)
Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
RFCs domainslib
3 4
142 161
-0.7% 3.1%
0.0 5.8
about 2 months ago about 2 months ago
OCaml
- ISC License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

RFCs

Posts with mentions or reviews of RFCs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2021-12-30.

domainslib

Posts with mentions or reviews of domainslib. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-06-15.
  • OCaml 5.0 Alpha Release
    5 projects | news.ycombinator.com | 15 Jun 2022
    For nested parallel computations (think Scientific Programming, where one would use OpenMP, Rust Rayon, etc), we have domainslib [1]. Eio, a direct-style, effect-based IO library is pretty competitive against Rust Tokio [2]. The performance will only get better as we get closer to the 5.0 release.

    [1] https://github.com/ocaml-multicore/domainslib

    [2] See the http server performance graphs at https://tarides.com/blog/2022-03-01-segfault-systems-joins-t...

  • PR to Merge Multicore OCaml
    10 projects | news.ycombinator.com | 21 Dec 2021
    1. Domains are the unit of parallelism. A domain is essentially an OS thread with a bunch of extra runtime book-keeping data. You can use Domain.spawn (https://github.com/ocaml-multicore/ocaml-multicore/blob/5.00...) to spawn off a new domain which will run the supplied function and terminate when it finishes. This is heavyweight though, domains are expected to be long-running.

    2. Domainslib is the library developed alongside multicore to aid users in exploiting parallelism. It supports nested parallelism and is pretty highly optimised (https://github.com/ocaml-multicore/domainslib/pull/29 for some graphs/numbers). The domainslib repo has some good examples: https://github.com/ocaml-multicore/domainslib/tree/master/te...

    3. We've not tested against other forms of parallelism. There isn't anything stopping you exploiting SIMD in addition to parallelism from domains.

    4. No, we've not compared performance by OS.

    5. No plans for the multicore team to look at accelerator integration at the moment.

  • The road to OCaml 5.0
    2 projects | /r/ocaml | 7 Oct 2021
    [3] Domainslib -- Parallel Programming over Multicore OCaml, https://github.com/ocaml-multicore/domainslib

What are some alternatives?

When comparing RFCs and domainslib you can also consider the following projects:

eioio - Effects-based direct-style IO for multicore OCaml

ocaml-multicore - Multicore OCaml

performancepaper - A reproducible, open examination of the paper "A performance comparison of Clojure and Java" by Gustav Krantz

dune - A composable build system for OCaml.

ocaml - The core OCaml system: compilers, runtime system, base libraries

rescript-compiler - The compiler for ReScript.

mlton - The MLton repository

esy - package.json workflow for native development with Reason/OCaml