Paralull is a Wait-free Queue as lulling as Fetch-and-Add implementation in C.
Used for comparative tests:
- liblfds v6.1.1 - A portable, license-free, lock-free data structure library written in C
- Google/benchmark - A microbenchmark support library
- (submodule) Criterion - A KISS, non-intrusive cross-platform C unit testing framework
Keep the submodule update:
$ git submodule update
Installation:
$ mkdir build
$ cd build
$ cmake ..
$ make
For unit tests:
$ ./test/parallul_unit_tests
To run the Google microbenchmark:
$ ./bench/bench
Generated bench: https://venthom.github.io/paralull/bench/
/* FIXME */
Take a look at ~/bench/bench.cc
For instance:
[...]
BENCHMARK(libflds_enqueue)
->Threads(1)
->Threads(2)
->Threads(4)
->Threads(8)
->Threads(16)
->Threads(32)
->Threads(64)
->Threads(128);
[...]
BENCHMARK(paralull_enqueue)
->Threads(1)
->Threads(2)
->Threads(4)
->Threads(8)
->Threads(16)
->Threads(32)
->Threads(64)
->Threads(128);
[...]
- Find out a way to install liblfds easily. Apparently there is something wrong with the release archives.
Franklin Mathieu
Thomas Venriès