-
-
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
Cythonic SchedulerState (WIP) #5176
Conversation
cc @jakirkham |
For test_scheduler.py I get: 24 failed, 398 passed |
It's worth pointing out here, that certain attributes moved to SchedulerState. Things like transition_* certainly feel like internal details. However, some tests and other low-level poking of the scheduler would need to change their call from, e.g., |
@jakirkham if you have time my sense is that you're probably the main expert here |
Just a heads up that @jakirkham is out of the office this week, but should be back next week |
Apologies for being slow here Martin. Would it be possible to resolve the conflicts here? Edit: Should add I like this change generally and this was kind of in the back of my head while pulling out |
I haven't looked in detail, but I suppose with some effort, yes. Do you think the work is going in the right direction, though? There has been far less enthusiasm for cython this last year. |
Yeah I think so. When adding
As to enthusiasm, there were two other things we found to be slow:
On the communication front we wanted to move to an There have been some improvements on the serialization front ( #4541 ) ( #4531 ) ( #5208 ). That said, the big thing that sticks out to me is more Dask operations work with HLGs now. The Scheduler is increasingly involved in the work to execute them. Also the bottlenecks that were there are getting cleared out. All of this will make the Scheduler more of a painpoint going forward. Additionally it sounds like we can benefit from cleaner separation of code that this PR would move us towards to improve general maintainability. |
I think separating the scheduler state from the server code makes sense regardless of whether we move on with cythonization. I intend to do the same on worker side but rather from the POV of a cleaner architecture, easier testability, etc; see #5736 In a recent sync (scheduler performance / Nvidia & Coiled) we discussed dropping Cythonization support. During this sync everybody appeared to agree which led to #5685 but only few engaged on the discussion over there, so far. I would suggest to move forward with the separation of state from server code but would suggest to wait with changing all the signatures until we have a solid decision in #5685 FWIW, I would be much more excited about the prospect of cythonization if the state is pure cython and this PR is a great step in this direction. IFF we want to move forward with cythonization, I think this separation is crucial |
For those that do do benchmarking, is it possible to run a set, cythonized and not for each:
I would add "this branch after resolving conflicts", but doing that resolution is probably a decent amount of work in itself. |
Not sure what this means, but it sounds like Ben missed this and I wasn't present. Don't know who else was present. So I'm not sure what everybody agreed means. Anyways would suggest keeping that discussion in that issue. |
Following up on our discussion in the meeting earlier today, it seems like this PR is a good first step with the next step moving |
Have pushed conflict resolutions here. Though think I'm going to squash the history, rebase, and start a new PR for simplicity. Will reference once it is is open |
Fine with me. Nice to see things moving! |
Thanks for all the work and support Martin! 😄 Continuing in PR ( #5839 ) |
black distributed
/flake8 distributed
/isort distributed
Status:
client.submit(lambda x: x + 1).result()
ran successfully.