ray.tune.schedulers.resource_changing_scheduler.DistributeResources#
- class ray.tune.schedulers.resource_changing_scheduler.DistributeResources(add_bundles: bool = False, increase_by: Dict[str, float] | None = None, increase_by_times: int = -1, reserve_resources: Dict[str, float] | None = None)[源代码]#
基类:
object
此类创建了一个基本的统一资源分配函数。
该函数天真地在试验之间平衡空闲资源(CPU 和 GPU),给予它们相同的优先级,确保所有资源始终被使用。空闲资源将被放入新的捆绑包中。该函数假设所有捆绑包都是平等的(没有“头”捆绑包)。
如果由于某些原因,一个试验最终获得的资源超过了可用资源,它将会向下调整。同时,它也会确保该试验至少拥有与开始时相同的资源(
base_trial_resource
)。该函数返回一个更新了资源需求的新
PlacementGroupFactory
,或者返回 None。如果返回的PlacementGroupFactory
在值上与试验当前的相同,调度器将在内部跳过更新过程(与返回 None 相同)。如果你想实现自己的资源分配逻辑,你可以通过扩展这个类来实现,因为它提供了几个通用方法。你也可以实现一个函数来代替。
- 参数:
add_bundles – 如果为真,从免费资源创建新的资源包。否则,将它们分散在 base_trial_resource 资源包中。
increase_by – 一个包含键值对的字典,表示试验将增加的资源(名称-数量)的原子单位。如果未设置,试验将增加1个CPU/GPU。
increase_by_times – 如果设置为 >=1 并且
increase_by
已设置,试验将增加最多increase_by_times * increase_by
资源。如果设置为 <1,则不设置上限。如果increase_by
未设置,则忽略此项。reserve_resources – 一个资源名称-数量对的字典,表示不会分配给调整大小的试验的资源。
PublicAPI (测试版): 此API目前处于测试阶段,在成为稳定版本之前可能会发生变化。
方法