程序化集群扩展#

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的次要版本之间发生变化。