Vesa Karvonen
Vesa Karvonen
## On poor performance of this queue on Opteron (i.e. fermat) On the "fermat" machine we use for benchmarking, the Michael-Scott queue seems to perform better than this queue. The...
Out of curiosity I tried to test the theory of whether one could improve the performance of this queue on Opteron by writing to the cache line (non-atomically) before reading...
Note that the `Saturn_lockfree Queue` refers to the Michael-Scott based queue. The code in this branch adds a benchmark for `Saturn_lockfree Two_stack_queue`. If you run `dune exec --release -- ./bench/main.exe...
A quick note: I currently strongly feel this sort of thing should be put into a minimal library of its own. IOW, I would not put it into `lockfree` (nor...
> perhaps the rendezvous polymorphism is not required and could be added on the side on a case-by-case basis? It is difficult to say, but generally speaking, there are likely...
> > I currently strongly feel this sort of thing should be put into a minimal library of its own. > > Yeah I don't have an opinion on this.....
Also mentioning here that the [domain-local-await](https://github.com/ocaml-multicore/domain-local-await) or DLA library is now available as an [opam package](https://opam.ocaml.org/packages/domain-local-await/) and provides a blocking mechanism inspired by the "rendezvous" primitive described in this PR....
Overall this looks good! I added some minor comments on how to potentially improve.
I developed a draft implementation of lock-free bounded queue, see #83. It is based on the Michael-Scott queue and keeps track of the length of the queue and a cache...
Is there a benchmark comparing against the Michael-Scott queue? It would be interesting to see the relative performance.