-
Notifications
You must be signed in to change notification settings - Fork 61
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
Adds OpenMP to qsort, should also improve test speed a bit #179
Conversation
9500eb4
to
8ddc73a
Compare
I assume this was benchmarked on a SKX? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. I noticed you use the same thresholds mostly from the key-value sort. Did you get a chance to experiment with it?
Oops, that int16 slowness seems to be a real issue. Let me fix that quickly |
8ddc73a
to
dba705f
Compare
Okay, this should be fixed now. Here are some benchmarks from my SPR machine: SPR Benchmarks
|
This adds OpenMP acceleration to quicksort, in addition to making some changes to the testing code. On my current testing system, this gives up to a 3x speedup, though I think more may be achieved on a stronger system.
Benchmarks:
10m
1m
And to show that there does not seem to be a regression with small sizes due to the SIMD logic:
128
In addition, this adds larger tests for quicksort to test the OpenMP logic. Out of concern for the runtime of the test suite, I modified both these new tests and the older kv tests to only use the larger sizes for the main sort, the only one that uses OpenMP and thus needs them. I believe this should result in a noticeable net reduction in the runtime of the test suite.