程序化集群扩展#
ray.autoscaler.sdk.request_resources#
在 Ray 程序中,你可以通过 request_resources()
调用来命令自动扩展器将集群扩展到所需的大小。集群将立即尝试扩展以容纳请求的资源,绕过正常的扩展速度限制。
- ray.autoscaler.sdk.request_resources(num_cpus: int | None = None, bundles: List[dict] | None = None) None [源代码]
命令自动缩放器进行缩放以适应指定的请求。
集群将立即尝试扩展以容纳请求的资源,绕过正常的扩展速度限制。这会考虑现有的资源使用情况。
例如,假设你调用
request_resources(num_cpus=100)
并且当前有45个任务正在运行,每个任务需要1个CPU。那么,将添加足够的节点以便最多100个任务可以同时运行。它**不会**添加足够的节点以便145个任务可以运行。这个调用只是对自动伸缩器的一个提示。实际的集群大小可能会略大于或小于预期,具体取决于内部装箱算法和最大工作节点数的限制。
- 参数:
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}])
开发者API: 此API可能会在Ray的次要版本之间发生变化。