OCaml Multicore merged upstream

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • ocaml

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

  • sandmark

    A benchmark suite for the OCaml compiler

  • Along with the graphs from the PR in the sibling comment, there's also the extensive benchmarking from the ICFP2020 paper: https://arxiv.org/pdf/2004.11663.pdf

    Work on this is on-going via the sandmark benchmarking suite: https://github.com/ocaml-bench/sandmark

    In short the expectation should be that single-threaded code performs roughly the same (single digit percentage changes) as on the sequential runtime.

    Parallel code on multicore can see close to linear speedups on 64 cores, though it depends significantly on your workload. If you're interested in parallelising existing OCaml code, I gave an example-driven OCaml workshop talk in 2020: https://www.youtube.com/watch?v=Z7YZR1q8wzI

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • eioio

    Effects-based direct-style IO for multicore OCaml

  • work has already begin on a direct-style IO library that internally uses effects. See:

    - https://github.com/ocaml-multicore/eio#readme for more information on the Eio library

  • effects-examples

    Examples to illustrate the use of algebraic effects in Multicore OCaml

  • Good question!

    https://github.com/ocaml-multicore/effects-examples has links to tutorials and examples for how effects can be used.

    There's also some slides from KC's talk on effect handlers https://kcsrk.info/slides/handlers_edinburgh.pdf and materials from the CUFP 17 tutorial: https://github.com/ocamllabs/ocaml-effects-tutorial

    https://gopiandcode.uk/logs/log-bye-bye-monads-algebraic-eff... this is also a great introduction

  • ocaml-effects-tutorial

    Concurrent Programming with Effect Handlers

  • Good question!

    https://github.com/ocaml-multicore/effects-examples has links to tutorials and examples for how effects can be used.

    There's also some slides from KC's talk on effect handlers https://kcsrk.info/slides/handlers_edinburgh.pdf and materials from the CUFP 17 tutorial: https://github.com/ocamllabs/ocaml-effects-tutorial

    https://gopiandcode.uk/logs/log-bye-bye-monads-algebraic-eff... this is also a great introduction

  • raytracers

    Performance comparison of parallel ray tracing in functional programming languages

  • If you're interested to see a comparison of parallel programming in a number of functional languages check this repo out [0]. It includes parallel multicore OCaml, MLton (but not Poly/ML, which has been around and parallel longer), Haskell, Futhark, F#, Scala, and Rust.

    Credit to Sam Westrick for turning me on to this [1].

    [0] https://github.com/athas/raytracers

    [1] https://twitter.com/shwestrick/status/1480587660691480579

  • lwt_eio

    Use Lwt libraries from within Eio

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts