ray.运行时环境.RuntimeEnv#
- class ray.runtime_env.RuntimeEnv(*, py_modules: List[str] | None = None, working_dir: str | None = None, pip: List[str] | None = None, conda: Dict[str, str] | str | None = None, container: Dict[str, str] | None = None, env_vars: Dict[str, str] | None = None, worker_process_setup_hook: Callable | str | None = None, nsight: Dict[str, str] | str | None = None, config: Dict | RuntimeEnvConfig | None = None, _validate: bool = True, mpi: Dict | None = None, image_uri: str | None = None, **kwargs)[源代码]#
基类:
dict
此类用于定义作业、任务或角色的运行时环境。
详细文档请参见 运行时环境。
此类可以在相关API调用中与非结构化字典互换使用。
可以指定整个作业的运行时环境,无论是直接在集群上运行脚本,使用Ray作业提交,还是使用Ray客户端:
from ray.runtime_env import RuntimeEnv # Starting a single-node local Ray cluster ray.init(runtime_env=RuntimeEnv(...))
from ray.runtime_env import RuntimeEnv # Connecting to remote cluster using Ray Client ray.init("ray://123.456.7.89:10001", runtime_env=RuntimeEnv(...))
可以使用
.options()
或@ray.remote
装饰器为每个参与者或每个任务指定不同的运行时环境:from ray.runtime_env import RuntimeEnv # Invoke a remote task that will run in a specified runtime environment. f.options(runtime_env=RuntimeEnv(...)).remote() # Instantiate an actor that will run in a specified runtime environment. actor = SomeClass.options(runtime_env=RuntimeEnv(...)).remote() # Specify a runtime environment in the task definition. Future invocations via # `g.remote()` will use this runtime environment unless overridden by using # `.options()` as above. @ray.remote(runtime_env=RuntimeEnv(...)) def g(): pass # Specify a runtime environment in the actor definition. Future instantiations # via `MyClass.remote()` will use this runtime environment unless overridden by # using `.options()` as above. @ray.remote(runtime_env=RuntimeEnv(...)) class MyClass: pass
以下是一些 RuntimeEnv 初始化的示例:
# Example for using conda RuntimeEnv(conda={ "channels": ["defaults"], "dependencies": ["codecov"]}) RuntimeEnv(conda="pytorch_p36") # Found on DLAMIs # Example for using container RuntimeEnv( container={"image": "anyscale/ray-ml:nightly-py38-cpu", "run_options": ["--cap-drop SYS_ADMIN","--log-level=debug"]}) # Example for set env_vars RuntimeEnv(env_vars={"OMP_NUM_THREADS": "32", "TF_WARNINGS": "none"}) # Example for set pip RuntimeEnv( pip={"packages":["tensorflow", "requests"], "pip_check": False, "pip_version": "==22.0.2;python_version=='3.8.11'"})
- 参数:
py_modules – URI 列表(可以是 GCS 或外部存储中的任何一个),每个 URI 都是一个 zip 文件,这些文件将被解压并插入到工作者的 PYTHONPATH 中。
working_dir – URI(在GCS或外部存储中)的zip文件,将在每个任务/角色的目录中解压缩。
pip – 可以是pip包的列表,包含pip requirements.txt文件路径的字符串,或者是具有三个字段的python字典:1)
packages
(必需, List[str]):pip包的列表,2)pip_check
(可选, bool):是否在pip安装结束时启用pip检查,默认为False。3)pip_version
(可选, str):pip的版本,Ray会在``pip_version``前加上包名“pip”以形成最终的需求字符串,需求说明符的语法在PEP 508中有详细定义。conda – 可以是 conda YAML 配置、本地 conda 环境名称(例如,“pytorch_p36”),或 conda environment.yaml 文件的路径。Ray 依赖项将自动注入 conda 环境中,以确保与集群 Ray 的兼容性。conda 名称可能会自动修改以避免运行时环境之间的冲突。此字段不能与 ‘pip’ 字段同时指定。要在 conda 中使用 pip,请在 conda YAML 配置中指定您的 pip 依赖项:https://conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html#create-env-file-manually
container – 需要一个给定的(Docker)容器镜像,Ray 工作进程将在使用此镜像的容器中运行。
run_options
列表规范在此处:https://docs.docker.com/engine/reference/run/env_vars – 要设置的环境变量。
worker_process_setup_hook – (实验性) 在工作者启动后和任务及角色调度前调用的设置钩子。可以传递模块名(字符串类型)或可调用对象(函数)。当传递模块名时,Ray 工作者应能够访问该模块名。当传递可调用对象时,该对象应是可序列化的。当通过作业提交 API 指定运行时环境时,只允许传递模块名(字符串)。
nsight – 字典映射 nsight 配置选项名称到其值。
config – 运行时环境的配置。可以是字典或 RuntimeEnvConfig。字段:(1) setup_timeout_seconds,运行时环境创建的超时时间,超时时间以秒为单位。
方法
使用可迭代对象中的键创建一个新字典,并将值设置为指定的值。
尚未实现,总是返回一个空列表
如果未找到键,则返回给定的默认值;否则,引发 KeyError。
移除并返回一个 (键, 值) 对作为 2-tuple。
如果字典中不存在键,则插入键并赋予默认值。
如果 E 存在且有 .keys() 方法,则执行: for k in E: D[k] = E[k] 如果 E 存在但没有 .keys() 方法,则执行: for k, v in E: D[k] = v 在任何一种情况下,之后都会执行: for k in F: D[k] = F[k]
属性