當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python distributed.deploy.Adaptive用法及代碼示例


用法:

class distributed.deploy.Adaptive(cluster=None, interval=None, minimum=None, maximum=None, wait_count=None, target_duration=None, worker_key=None, **kwargs)

根據調度程序負載自適應地分配工作人員。一個超類。

包含根據當前使用動態調整 Dask 集群大小的邏輯。此類需要與可以使用集群資源管理器創建和銷毀 Dask 工作人員的係統配對。通常,它內置於現有的解決方案中,而不是由用戶直接使用。它最常用於各種 Dask 集群類的 .adapt(...) 方法。

參數

cluster: object

必須有規模和scale_down 方法/協程

intervaltimedelta 或 str,默認“1000 毫秒”

檢查之間的毫秒數

wait_count: int, default 3

在我們移除工人之前,應建議移除工人的連續次數。

target_duration: timedelta or str, default “5s”

我們希望計算花費的時間。這會影響我們擴大規模的積極程度。

worker_key: Callable[WorkerState]

縮小時將工作人員組合在一起的函數有關詳細信息,請參閱 Scheduler.workers_to_close

minimum: int

保留的最少工人數量

maximum: int

要保留的最大工人數量

**kwargs:

傳遞給調度程序的額外參數。workers_to_close

注意

子類可以覆蓋 Adaptive.target()Adaptive.workers_to_close() 以控製何時應調整集群大小。默認實現檢查每個工作人員是否有太多任務或可用內存太少(請參閱Scheduler.adaptive_target())。間隔、最小值、最大值、wait_count 和 target_duration 的值可以在 dask 配置中的 distributed.adaptive 鍵下指定。

例子

這通常用於現有的 Dask 類,例如 KubeCluster

>>> from dask_kubernetes import KubeCluster
>>> cluster = KubeCluster()
>>> cluster.adapt(minimum=10, maximum=100)

或者,您可以通過從 Dask 的 Cluster 超類繼承來從您自己的 Cluster 類中使用它

>>> from distributed.deploy import Cluster
>>> class MyCluster(Cluster):
...     def scale_up(self, n):
...         """ Bring worker count up to n """
...     def scale_down(self, workers):
...        """ Remove worker addresses from cluster """
>>> cluster = MyCluster()
>>> cluster.adapt(minimum=10, maximum=100)

相關用法


注:本文由純淨天空篩選整理自dask.org大神的英文原創作品 distributed.deploy.Adaptive。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。