New major release of Parany (v14.0.0)

# opam search parany
[...]
parany 14.0.0      Parallelize any computation

I switched back the runtime to fork+marshal.
As was the case before version 13.0.0.
Versions 13.* (up to 14.0.0 excluded) use ocaml5-threads to parallelize computations.

There is a branch GitHub - UnixJunkie/parany at ocaml5_threads
if anybody wants to maintain this backend.

The Parany.Parmap module has new functions for arrays:

Regards,
F.

4 Likes

Can you tell us more about your reason to switch back to fork+marshal?

3 Likes

I want optimal parallel performance for the kind of workloads I encounter daily at work.

I haven’t gone through the repository in great detail - curious if you have any numbers comparing fork+marshal against OCaml 5 domains?

5 Likes

The only public benchmark I have is this one:

My advice: all ocaml5 benchmarks should be ported to fork+marshal, in order to detect
when and by how much ocaml5-threads are behind in terms of parallel performance.

Are you able to release the dataset so that we can reproduce your results? Otherwise, I’m unable to see the utility of your advice.

It is certainly possible that fork+marshal is faster for certain programs. But a generalised advice of “port all your ocaml 5 programs to fork+Marshall” is not useful. The advice has to be more specifc such as “If your program has a pattern X, then fork+marshal may offer better performance”. In your case, the work is embarrassingly parallel, and I assume fork+marshal works better (I presume).

2 Likes

I thought there are plenty of ocaml5 parallel benchmarks out there.

Was it in there?

I guess some of the ocaml5-threads parallel programs in there could be ported to fork+marshal
and have some parallelization performance comparison.
Since I contributed the Gram matrix benchmark in there, I could have a look at this one
when I have some time.