add schobi scheduler - #16
Open
Kamayuq wants to merge 2 commits into
Open
Conversation
3 flavors: sequential baseline, fork join, group shared
Kamayuq
marked this pull request as ready for review
July 26, 2026 04:38
libfork and tbb can actually do this without deadlocking
Author
|
I added some other group-shared implementations and TBB is such a sleeper sometimes:
I kinda still like the C flavor better, but I am heavily biased. |
Owner
|
Thanks for the contribution. I'll take some time to look at this and get it integrated. I'm interested in your single-task latency and single-parallel-group benchmark too. Those seem like useful representations of the way these things are often used. |
Author
|
Not only that if we convert a few more we might gain some valuable insight as sharing data is often “invisible” overhead in the profiler and every additional experiment is a good representation of what a slightly different memory access pattern can cost or gain you on a given machine. I really like the collection of hardware you have running. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I would like to add the schobi scheduler to your comparison I implemented 3 flavors: sequential baseline, fork join and group shared. The latter could be considered a cheat, but I think we can make an exception if it is faster than the sequential baseline. The schedulers are allowed to be implemented using their idiomatic language as well. And yes it looks like GPU code for a reason.
Anyways here are the numbers from an 9175F and 16core/32MB per core sliced 16chiplet CPU with terrible atomic latency. Any more normal CPU should have different and probably drastically better scaling:
*sequential is completely single threaded without scheduler overhead
**the other rows are speedup compared to optimized sequential implementation 16x is the theoretical maximal achievable limit on this 16core CPU numbers lower than 1x are actually slower than the baseline.
The deep fork join corner of the problem space is something schobi does not compete in and does not want to compete in by choice.