-
Notifications
You must be signed in to change notification settings - Fork 38
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Lockfree benchmarks #194
Lockfree benchmarks #194
Conversation
This looks useful. Are the non-scaling benchmarks expected not to scale? |
While I wouldn't expect linear scaling in the non-scaling benchmarks, the current numbers need investigation. |
One thing with these Lockfree benchmarks is that the 'time' and 'speedup' don't tie out with how many of the papers in the area are reporting their numbers. Is it possible to also report the numbers in terms of throughput (e.g. number of transactions per second) or in terms of time per transaction? |
I assume that these benchmarks don't have much parallelisable work (except the hash table). For example, consider the benchmark for lock-free queues with a producer and consumer pushing items through the queue. It is unclear whether to expect speedup by splitting the items among multiple producers and consumers, but using the same shared queue. There is increased contention on the shared queue, and there isn't any useful parallelisable work. Given this, adding some commentary in the top of the test program files would help someone looking at these numbers in the future. I am happy to merge this PR as is, but let's open an issue to track the task to add commentary to these benchmarks. Is this acceptable @Sudha247? |
Yeah, that sounds good! Like Tom mentioned above, it might be useful to measure throughput vs number of cores rather than speedup. ocaml-multicore/saturn#6 has some details about these benchmarks, perhaps we could open a placeholder issue on sandmark too. |
@Sudha247 sounds good. Can you open the placeholder issues? I'll merge this PR now. |
Lockfree benchmarks
This patch contains benchmarks for existing structures in the lockfree library. All lockfree benchmarks are labelled with a
lockfree_bench
tag.Benchmark for a data structure contains a sequential and parallel version. Parallel version splits the available work equally to all domains.