-
Notifications
You must be signed in to change notification settings - Fork 92
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
adapt: could be added to cluster options? #311
Comments
Adapt arguments aren't configured in the cluster constructor for any other dask cluster classes - it's not part of the standard In Prefect we've already thought about this, you can pass executor = DaskExecutor(
cluster_class="dask_gateway.GatewayCluster",
cluster_kwargs={...},
adapt_kwargs={"maximum": 10}
) Is this not sufficient for your needs? |
Hmm... maybe adaptation options should be made part of Perhaps (if its not feasible to put these into dask.distributed) there is a way to setup an "on-cluster-create" hook which could be specified in cooperation with the option handler in the helm deployment: the handler could register a callback that set the adaptation options? |
Things in the cluster constructor (and Note that there are static, per cluster resource limits you can set, so if your goal is to limit user resources to certain bounds you could make use of these instead https://gateway.dask.org/resource-limits.html. Alternatively, we could make the I guess I'm looking for how the current configuration options make things harder for you. What is your goal here (the what), rather than the mechanism you'd like to do it with (the how)? |
The "what" is that I'd like to have defaults with enforceable bounds on "what sort of cluster a given profile gets" and have it work by default without too much thought on the part of a user, who hopefully will be worrying about other things (like cleaning data, etc). Although scale and adaptivity are configurable dynamically, I'd like clusters to adapt by default within the bounds set by the profile. This seems like the most intuitive setting for a user who hasn't profiled their tasks yet, and/or is just developing them. I would think that this would be useful for any dask_gateway administrator to be able to set up for their users, independent of whether they are using prefect. Edit -- it may be that |
I don't know if this is the right way to think about it, but I'm seeing adaptivity in analogy to the k8 cluster autoscaler. CA is a bit fiddly to setup, but usually when I deploy an application, I don't have to think about it. Of course the analogy is inexact, because k8 is global wrt to things running in the cluster, while a dask cluster is specific to the flow (though having a pool of dask clusters to run flows on is something else I may want at some point...). Still it seems very plausible that users should have to think or tune cluster size as little as possible by default (within sensible, cost-effective limits), and adaptivity seems the best way to get them this. |
I would like to expose adaptation as a cluster option (in my case for kubernetes deployment, but probably would be good for any). (active, minimum, maximum)
Is there any technical reason why adaptation has been kept separate from other cluster settings? Especially since I will be creating clusters via prefect agent, a separate call to
adapt()
seems problematic.The text was updated successfully, but these errors were encountered: