程序化集群扩缩#
ray.autoscaler.sdk.request_resources#
在 Ray 程序中,您可以通过调用 request_resources()
命令自动扩缩器将集群扩缩到期望的大小。集群将立即尝试扩缩以满足请求的资源,绕过正常的扩缩速度限制。
- ray.autoscaler.sdk.request_resources(num_cpus: int | None = None, bundles: List[dict] | None = None) None [source]
命令自动扩缩器扩缩以满足指定的资源请求。
集群将立即尝试扩缩以满足请求的资源,绕过正常的扩缩速度限制。这会考虑现有的资源使用情况。
例如,假设您调用
request_resources(num_cpus=100)
,并且当前正在运行 45 个任务,每个任务需要 1 个 CPU。然后,将添加足够的节点,以便最多可以并发运行 100 个任务。它不会添加足够的节点以运行 145 个任务。此调用仅是自动扩缩器的一个提示。实际产生的集群大小可能会比预期略大或略小,具体取决于内部的 bin packing 算法和最大工作节点数量限制。
- 参数:
num_cpus – 扩缩集群以确保提供此数量的 CPU。此请求会一直持续,直到另一次调用 request_resources() 覆盖它为止。
bundles (List[ResourceDict]) – 扩缩集群以确保此组资源形状能够容纳。此请求会一直持续,直到另一次调用 request_resources() 覆盖它为止。
示例
>>> from ray.autoscaler.sdk import request_resources >>> # Request 1000 CPUs. >>> request_resources(num_cpus=1000) >>> # Request 64 CPUs and also fit a 1-GPU/4-CPU task. >>> request_resources( ... num_cpus=64, bundles=[{"GPU": 1, "CPU": 4}]) >>> # Same as requesting num_cpus=3. >>> request_resources( ... bundles=[{"CPU": 1}, {"CPU": 1}, {"CPU": 1}])
DeveloperAPI: 此 API 可能在 Ray 的次要版本之间发生变化。