当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。