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 aRayActorError
exception uponray.get
. Note that Python exceptions may trigger retries only ifretry_exceptions
is set for the method, in that case whenmax_task_retries
runs out the task will rethrow the exception from the task. You can override this number with the method’smax_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)