-
-
Notifications
You must be signed in to change notification settings - Fork 728
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
Refactor/stealing #8271
base: main
Are you sure you want to change the base?
Refactor/stealing #8271
Conversation
Can one of the admins verify this patch? Admins can comment |
Unit Test ResultsSee test report for an extended history of previous test failures. This is useful for diagnosing flaky tests. 27 files ± 0 27 suites ±0 9h 57m 58s ⏱️ + 4m 6s For more details on these failures, see this check. Results for commit 297eb88. ± Comparison against base commit 1211e79. ♻️ This comment has been updated with latest results. |
49a52d1
to
9d80eab
Compare
Could I get some support regarding the test pipelines? Reproducing the github pipelines using I already merged the fix for the existing issue with the pipelines (#8504), so that's not the cause. Thanks in advance! |
9d80eab
to
0d980c2
Compare
Refactors work stealing to facilitate external algorithms. Functionally it should be the same.
This Pull Request enables more readable code, reduces side-effects and further facilitates external algorithms. It allows me to re-define which workers should be considered thieves or victims, and when to steal from these without impacting too much code.
I do recommend a second refactor taking out the
WorkStealing
dependency from theWorkStealingBalancer
.I recommend going for a more functional design of the class, where it returns the (recommended) movements of the tasks rather than executing them whilst stealing.
However, subsequent "thefts" depend on the state of the cluster with the previously stolen tasks. This requires wrapping the occupancy/processing/... metric calculations so that the recommended-but-not-yet-stolen tasks' new locations are considered when stealing another task. I do not yet possess the knowledge of how this works on the scheduler itself, that is why it is missing from the current PR.
I am willing to add more tests, as soon as the pipelines for tests work properly.
test_blocks_until_full
, with a side dish ofToo many open files
pre-commit run --all-files