ray.init#
- ray.init(address: str | None = None, *, num_cpus: int | None = None, num_gpus: int | None = None, resources: Dict[str, float] | None = None, labels: Dict[str, str] | None = None, object_store_memory: int | None = None, local_mode: bool = False, ignore_reinit_error: bool = False, include_dashboard: bool | None = None, dashboard_host: str = '127.0.0.1', dashboard_port: int | None = None, job_config: ray.job_config.JobConfig = None, configure_logging: bool = True, logging_level: int = 'info', logging_format: str | None = None, logging_config: LoggingConfig | None = None, log_to_driver: bool | None = None, namespace: str | None = None, runtime_env: Dict[str, Any] | RuntimeEnv | None = None, storage: str | None = None, **kwargs) BaseContext [源代码]#
连接到现有的 Ray 集群,或启动一个新集群并连接到它。
此方法处理两种情况;要么Ray集群已经存在,我们只需将此驱动程序附加到它,要么我们启动与Ray集群关联的所有进程,并附加到新启动的集群。注意:此方法会覆盖驱动程序进程的sigterm处理程序。
在大多数情况下,只需不带参数调用此方法即可。这将自动检测现有的 Ray 集群,如果没有找到现有集群,则启动一个新的 Ray 实例:
ray.init()
要显式连接到现有的本地集群,请按如下方式使用。如果没有找到现有的本地集群,将抛出 ConnectionError。
ray.init(address="auto")
要连接到现有的远程集群,请按如下方式使用(替换为适当的地址)。注意地址开头添加了“ray://”。这需要
ray[client]
。ray.init(address="ray://123.45.67.89:10001")
有关启动和连接到远程集群的更多详细信息,请参见此处:https://docs.ray.io/en/master/cluster/getting-started.html
你也可以定义一个名为
RAY_ADDRESS
的环境变量,其格式与address
参数相同,以便通过 ray.init() 或 ray.init(address=”auto”) 连接到现有集群。- 参数:
address – 要连接的 Ray 集群的地址。提供的地址解析如下:1. 如果提供了一个具体的地址(例如,localhost:<端口>),尝试连接到该地址。具体地址可以以 “ray://” 为前缀来连接到远程集群。例如,传入地址 “ray://123.45.67.89:50005” 将连接到给定地址的集群。2. 如果没有提供地址,尝试找到一个现有的 Ray 实例进行连接。这是通过首先检查环境变量
RAY_ADDRESS
来完成的。如果没有定义,检查最新启动的集群的地址(在 /tmp/ray/ray_current_cluster 中找到)(如果可用)。如果这也为空,则启动一个新的本地 Ray 实例。3. 如果提供的地址是 “auto”,则遵循上述相同的过程。但是,如果没有找到现有的集群,这将抛出一个 ConnectionError 而不是启动一个新的本地 Ray 实例。4. 如果提供的地址是 “local”,则启动一个新的本地 Ray 实例,即使已经存在一个现有的本地 Ray 实例。num_cpus – 用户希望分配给每个 raylet 的 CPU 数量。默认情况下,这是根据虚拟核心设置的。
num_gpus – 用户希望分配给每个 raylet 的 GPU 数量。默认情况下,这是根据检测到的 GPU 设置的。
resources – 一个字典,将自定义资源的名称映射到它们可用的数量。
labels – [实验性] 节点的键值标签。
object_store_memory – 对象存储启动时使用的内存量(以字节为单位)。默认情况下,这是可用系统内存的30%(ray_constants.DEFAULT_OBJECT_STORE_MEMORY_PROPORTION),上限为shm大小和200G(ray_constants.DEFAULT_OBJECT_STORE_MAX_MEMORY_BYTES),但可以设置得更高。
local_mode – 已弃用:建议使用 Ray 调试器代替。
ignore_reinit_error – 如果为真,Ray 会抑制第二次调用 ray.init() 时的错误。Ray 不会被重新启动。
include_dashboard – 布尔标志,指示是否启动 Ray 仪表板,该仪表板显示 Ray 集群的状态。如果此参数为 None,则如果存在相关依赖项,将启动 UI。
dashboard_host – 要绑定仪表板服务器的主机。可以是 localhost (127.0.0.1) 或 0.0.0.0 (所有接口都可用)。默认情况下,这设置为 localhost 以防止外部机器访问。
dashboard_port (int, None) – 绑定仪表板服务器的端口。默认为8265,如果8265不可用,Ray将自动寻找一个空闲端口。
job_config (ray.job_config.JobConfig) – 工作配置。
configure_logging – 如果在此处允许配置日志记录,则为 True(默认)。否则,用户可能希望单独配置它。
logging_level – 驱动进程的“ray”日志记录级别,默认为 logging.INFO。除非“configure_logging”为真,否则忽略。
logging_format – 驱动进程的“ray”日志记录格式,默认为包含时间戳、文件名、行号和消息的字符串。详情请参见源文件 ray_constants.py。除非“configure_logging”为真,否则忽略。
logging_config – [实验性] 日志配置将应用于当前作业的驱动进程和所有工作进程的根日志记录器。详情请参见
LoggingConfig
。log_to_driver – 如果为真,所有节点上的工作进程的输出将被定向到驱动程序。
namespace – 命名空间是作业和命名角色的逻辑分组。
runtime_env – 用于此作业的运行时环境(详情请参阅 运行时环境)。
storage – [实验性] 指定一个用于持久化集群范围存储的URI。此存储路径必须可被集群中的所有节点访问,否则将引发错误。此选项也可以通过RAY_STORAGE环境变量指定。
_enable_object_reconstruction – 如果为 True,当存储在分布式 plasma 存储中的对象因节点故障而丢失时,Ray 将尝试通过重新执行创建该对象的任务来重建对象。任务的参数将递归地重建。如果为 False,则将抛出 ray.ObjectLostError。
_redis_max_memory – Redis 最大内存。
_plasma_directory – 覆盖等离子体mmap文件目录。
_node_ip_address – 我们所在节点的IP地址。
_driver_object_store_memory – 已弃用。
_memory – 以字节为单位可预留的内存资源量,向下取整至最接近的整数。
_redis_password – 如果提供密码,则阻止没有密码的外部客户端连接到 Redis。
_temp_dir – 如果提供,指定 Ray 进程的根临时目录。必须是绝对路径。默认为特定于操作系统的常规位置,例如,”/tmp/ray”。
_metrics_export_port – Ray 通过 Prometheus 端点暴露系统指标的端口号。它目前处于积极开发中,API 可能会发生变化。
_system_config – 用于覆盖 RayConfig 默认设置的配置。仅用于测试目的。
_tracing_startup_hook – 如果提供,将开启并设置 Ray 的跟踪功能。必须是一个不带参数的函数的名称,该函数设置一个 Tracer Provider、远程 Span 处理器,以及(可选)其他仪器。更多信息请参见 docs.ray.io/tracing.html。目前该功能正在积极开发中,API 可能会发生变化。
_node_name – 用户提供的节点名称或标识符。默认为节点IP地址。
- 返回:
如果提供的地址包含协议,例如通过在地址前加上 “ray://” 得到 “ray://1.2.3.4:10001”,那么将返回一个包含设置、ray 和 python 服务器版本以及 dashboard_url 等信息的 ClientContext。否则,将返回一个包含 ray 和 python 版本以及启动进程地址信息的 RayContext。
- 抛出:
Exception – 如果传入了不适当的参数组合,则会引发异常。