快捷方式

torchx.workspace

状态:测试版

工作区用于在现有镜像之上应用本地更改,以便您可以在远程集群上执行代码。此模块包含工作区实现使用的接口。

这些工作区被定义为 fsspec 路径,其下的目录和文件将用于生成补丁。

示例工作区路径

  • file://. 当前工作目录

  • memory://foo-bar/ 用于笔记本/编程使用的内存中工作区

class torchx.workspace.WorkspaceMixin(*args: object, **kwargs: object)[source]

注意: (原型) 此接口可能会在未经通知的情况下更改!

一个混合类,可以附加到调度程序,以添加构建工作区的能力。工作区是代码库/项目的本地检出,它构建成一个镜像。工作区调度程序添加了自动重建镜像或生成应用于 Role 的差异补丁的功能,允许用户对应用程序进行本地代码更改,并在运行时反映这些更改(通过新镜像或覆盖补丁)无需手动重建镜像。工作区构建工件的确切语义取决于具体实现。

abstract build_workspace_and_update_role(role: Role, workspace: str, cfg: Mapping[str, Optional[Union[str, int, float, bool, List[str], Dict[str, str]]]]) None[source]

根据 img 构建指定 workspace,并更新 role 以反映构建的工作区工件。在最简单的情况下,此方法构建一个新的镜像并更新角色的镜像。某些(更有效率)实现构建增量差异补丁,这些补丁覆盖在角色的镜像之上。

注意: 此方法会修改传递的 role

dryrun_push_images(app: AppDef, cfg: Mapping[str, Optional[Union[str, int, float, bool, List[str], Dict[str, str]]]) T[source]

dryrun_push 对镜像推送进行预演并更新应用以获得最终值。仅在远程作业中调用。

push 必须在调度作业之前调用。

push_images(images_to_push: T) None[source]

push 将所有必要的镜像推送到远程仓库。

workspace_opts() runopts[source]

返回工作区期望的运行配置选项。基本上是 --help 用于 run API。

torchx.workspace.walk_workspace(fs: AbstractFileSystem, path: str, ignore_name: str = '.torchxignore') Iterable[Tuple[str, Iterable[str], Mapping[str, Mapping[str, object]]]][source]

walk_workspace 遍历文件系统路径并应用通过 ignore_name 指定的忽略规则。这遵循 .dockerignore 的规则。 https://docs.docker.net.cn/engine/reference/builder/#dockerignore-file

torchx.workspace.docker_workspace

class torchx.workspace.docker_workspace.DockerWorkspaceMixin(*args: object, docker_client: Optional[DockerClient] = None, **kwargs: object)[source]

DockerWorkspaceMixin 将从工作区构建已修补的 Docker 镜像。这些已修补的镜像是 Docker 镜像,可以本地通过 Docker 守护程序使用,也可以使用辅助方法推送到远程仓库以用于远程作业。

这要求本地运行 Docker 守护程序,并且对于远程推送,需要通过 docker login 对这些仓库进行身份验证。

如果工作区中存在 Dockerfile.torchx 文件,则将使用该文件构建容器。

Docker 构建提供了一些额外的构建参数,这些参数可以在 Dockerfile.torchx 中使用。

  • IMAGE:来自 AppDef 中第一个角色的镜像字符串

  • WORKSPACE:完整的 workspace 路径

要从构建上下文排除文件,可以使用标准的 .dockerignore 文件。

参见更多

build_workspace_and_update_role(role: Role, workspace: str, cfg: Mapping[str, Optional[Union[str, int, float, bool, List[str], Dict[str, str]]]) None[source]

使用 role 的镜像作为基础镜像构建新的 Docker 镜像,并使用这个新构建的 Docker 镜像 ID 更新 role 的镜像

参数:
  • **role** – 将使用其镜像 (Docker 镜像) 作为基础镜像的角色

  • **workspace** – 包含要覆盖内容的目录的 fsspec 路径

dryrun_push_images(app: AppDef, cfg: Mapping[str, Optional[Union[str, int, float, bool, List[str], Dict[str, str]]]) Dict[str, Tuple[str, str]][source]

_update_app_images 将提供的 AppDef 中的本地 Docker 镜像 (通过 sha256:... 标识) 替换为将要上传到的远程路径,并返回本地到远程名称的映射。

在启动作业之前,必须使用返回的映射调用 push

返回值:

包含 [本地镜像名称,(远程仓库,标签)] 的字典。

push_images(images_to_push: Dict[str, Tuple[str, str]]) None[source]

_push_images 将指定的镜像推送到使用指定标签的远程容器仓库。Docker 守护进程必须使用 docker login 对远程仓库进行身份验证。

参数:

**images_to_push** – 包含 [本地镜像名称,(远程仓库,标签)] 的字典。

workspace_opts() runopts[source]

返回工作区期望的运行配置选项。基本上是 --help 用于 run API。

torchx.workspace.dir_workspace

class torchx.workspace.dir_workspace.DirWorkspaceMixin(*args: object, **kwargs: object)[source]
build_workspace_and_update_role(role: Role, workspace: str, cfg: Mapping[str, Optional[Union[str, int, float, bool, List[str], Dict[str, str]]]) None[source]

从工作区创建由 job_dir 指定的新目录。角色镜像字段将设置为 job_dir

将跳过 .torchxignore 文件夹中列出的所有文件。

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取针对初学者和高级开发人员的深入教程

查看教程

资源

查找开发资源并获得您的问题解答

查看资源