ray.actor.ActorClass.options#

ActorClass.options(**actor_options)[源代码]#

配置并覆盖演员实例化的参数。

The arguments are the same as those that can be passed to ray.remote.

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

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

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

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

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

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

  • max_restarts – 这指定了当角色意外死亡时,应重新启动的最大次数。最小有效值为 0(默认),表示角色不需要重新启动。值为 -1 表示角色应无限期地重新启动。

  • max_task_retries – How many times to retry an actor task if the task fails due to a runtime error, e.g., the actor has died. If set to -1, the system will retry the failed task until the task succeeds, or the actor has reached its max_restarts limit. If set to n > 0, the system will retry the failed task up to n times, after which the task will throw a RayActorError exception upon ray.get. Note that Python exceptions may trigger retries only if retry_exceptions is set for the method, in that case when max_task_retries runs out the task will rethrow the exception from the task. You can override this number with the method’s max_task_retries option in @ray.method decorator or in .option().

  • max_pending_calls – 设置在actor句柄上允许的最大挂起调用数。当超过此值时,将引发PendingCallsLimitExceeded以阻止进一步的任务。请注意,此限制是按句柄计数的。-1表示挂起调用的数量不受限制。

  • max_concurrency – 允许此角色的最大并发调用数。这仅适用于直接角色调用。最大并发数默认为线程执行时为1,异步执行时为1000。请注意,当max_concurrency > 1时,执行顺序无法保证。

  • name – 该演员的全局唯一名称,只要该演员仍然存活,就可以通过 ray.get_actor(name) 来检索该演员。

  • namespace – 覆盖用于角色的命名空间。默认情况下,角色是在匿名命名空间中创建的。可以通过 ray.get_actor(name=name, namespace=namespace) 来检索角色。

  • lifetime – 要么是 None,默认情况下,角色将与创建者共享命运,并在其引用计数降为零时被删除,要么是 “detached”,这意味着角色将作为独立于创建者的全局对象存在。

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

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

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

  • enable_task_events – 如果跟踪已启用,则为 True,即应报告来自参与者的任务事件。默认为 True。

示例:

@ray.remote(num_cpus=2, resources={"CustomResource": 1})
class Foo:
    def method(self):
        return 1
# Class Bar will require 1 cpu instead of 2.
# It will also require no custom resources.
Bar = Foo.options(num_cpus=1, resources=None)