Skip to content

Move to Mutex & Condition from Domain.Sync.{notify/wait} #24

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

Merged
merged 8 commits into from
May 10, 2021

Conversation

ctk21
Copy link
Contributor

@ctk21 ctk21 commented Apr 29, 2021

This PR is an update of #17. It uses the Mutex and Condition module as introduced by ocaml-multicore#548.

I got the following sandmark results (detuned machine but using chrt -1 and taskset) for speedup:
20210429_1545_bremusa_mutex_condvar

and execution time:
20210429_1545_bremusa_mutex_condvar_time

@ctk21
Copy link
Contributor Author

ctk21 commented Apr 30, 2021

I have rerun our larger tests on a bigger machine (upto 128 domains):
20210430_1300_sherwood_big_speedup
20210430_1300_sherwood_big_time

These tests should be compared with our earlier work here: ocaml-multicore/ocaml-multicore#387 (comment)

Broad brush these results are inline with our 2020-Sep results on the 4.10 based multicore. There are some cases at higher core count where the existing Domain.Sync.{wait,notify} is outperforming mutex/condvar.

@kayceesrk
Copy link
Contributor

Lgtm. I compared this PR with the earlier implementation here. It appears the same except for the Condition.broadcast instead of Condition.signal fixing the bug discovered by #25.

@Sudha247
Copy link
Contributor

This one looks good to go. Thanks for the work @ctk21 & @kayceesrk! Merging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants