ray.远程函数.远程函数.选项#

RemoteFunction.options(**task_options)[源代码]#

配置并覆盖任务调用参数。

The arguments are the same as those that can be passed to ray.remote. Overriding max_calls is not supported.

参数:
  • num_returns – 它指定了远程函数调用返回的对象引用数量。

  • num_cpus – 为此任务或演员的整个生命周期预留的CPU核心数量。

  • num_gpus – 为此任务或演员的整个生命周期预留的GPU数量。

  • resources (Dict[str, float]) – 为该任务或角色的整个生命周期预留的各种自定义资源的数量。这是一个将字符串(资源名称)映射到浮点数的字典。

  • accelerator_type – 如果指定,则要求任务或角色在具有指定类型加速器的节点上运行。请参阅 加速器类型

  • memory – 此任务/角色的堆内存请求(以字节为单位),向下舍入到最接近的整数。

  • object_store_memory – 仅限角色的对象存储内存请求。

  • max_calls – 这指定了给定的工作者可以执行给定的远程函数的最多次数,之后它必须退出(这可以用来解决第三方库中的内存泄漏问题,或者回收难以释放的资源,例如由TensorFlow获取的GPU内存)。默认情况下,对于CPU任务这是无限的,而对于GPU任务则是1次(以强制GPU任务在完成后释放资源)。

  • max_retries – 这指定了当执行远程函数的worker进程意外崩溃时,该函数应重新运行的最大次数。最小有效值是0,默认值是3(默认),值为-1表示无限重试。

  • runtime_env (Dict[str, Any]) – 指定此角色或任务及其子任务的运行时环境。有关详细文档,请参阅 运行时环境

  • retry_exceptions – 这指定了是否应重试应用程序级别的错误,最多重试 max_retries 次。

  • scheduling_strategy – 关于如何调度远程函数或角色的策略。可能的值是 None:ray 将确定要使用的调度策略,如果父级有放置组并且设置了 placement_group_capture_child_tasks 为 true,则将使用 PlacementGroupSchedulingStrategy,否则为 “DEFAULT”;”DEFAULT”:默认混合调度;”SPREAD”:尽力分散调度;PlacementGroupSchedulingStrategy:基于放置组的调度;NodeAffinitySchedulingStrategy:基于节点 ID 的亲和性调度。

  • enable_task_events – 这指定了是否为此任务启用任务事件。如果设置为 True,则会发出任务事件(如任务运行、完成),并可在 Ray 仪表板和状态 API 中使用。更多详情请参见 Ray State CLI 和 SDK

  • _metadata – Ray 库的扩展选项。例如,_metadata={“workflows.io/options”: <workflow options>} 用于 Ray 工作流。

示例:

@ray.remote(num_gpus=1, max_calls=1, num_returns=2)
def f():
   return 1, 2
# Task g will require 2 gpus instead of 1.
g = f.options(num_gpus=2)