-
Notifications
You must be signed in to change notification settings - Fork 4
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
fixes in main pool, make it work-stealing, add simple pool #11
Closed
Conversation
This file contains 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
Owner
c-cube
commented
Oct 25, 2023
- fix pool: on shutdown, finish reading from all queues
- test: add dep on trace-tef; add new test for scheduling issues
- wip: have only one condition in pool
- fix pool: rework scheduler to use one condition
- update tests a bit
- add heavier test for a particular hangup in fork join
- restore test
- feat: add Simple_pool, with the naive single-queue implementation
- refactor: move some common code to Suspend_
- feat: add Ws_deque_
- tests for ws_deque
- perf ws_deque: implement shrinking and a push optim
- feat pool: rewrite main pool to use work stealing
- tests: run some tests on both Pool and Simple_pool
- benchs: run with both pool and simple_pool
trying to expose that sometimes, some workers might be asleep while others do several tasks, because they're sleeping on the "wrong" queue
there's a single blocking queue, and one WS_queue per worker. Scheduling into the pool from a worker (e.g. via fork_join or explicitly) will push into this WS queue; otherwise it goes into the main blocking queue. Workers will always try to empty their local queue first, then try to work steal, then block on the main queue.
superseeded by #12 |
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.