raytracers
sandmark
raytracers | sandmark | |
---|---|---|
2 | 3 | |
303 | 81 | |
- | - | |
0.0 | 7.7 | |
9 months ago | 3 months ago | |
Futhark | Jupyter Notebook | |
- | The Unlicense |
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.
raytracers
- Performance comparison of ray tracing in functional programming languages
-
OCaml Multicore merged upstream
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
sandmark
-
OCaml Multicore merged upstream
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
-
Multicore OCaml PR has been merged
Yes. We have some benchmarks in sandmark (https://github.com/ocaml-bench/sandmark) that are nearly linear up to 60 cores and cap out at about an 80x speedup on 128 cores.
What are some alternatives?
effects-examples - Examples to illustrate the use of algebraic effects in Multicore OCaml
ocaml - The core OCaml system: compilers, runtime system, base libraries
lwt_eio - Use Lwt libraries from within Eio
eioio - Effects-based direct-style IO for multicore OCaml
ocaml-effects-tutorial - Concurrent Programming with Effect Handlers