使用 Base Command 构建 AI 卓越中心

步骤 #6:工作区使用

现在我们已经创建了一个工作区,我们可以在 CLI 和 Web UI 中使用它,无论是在我们的作业中,还是在 CLI 的情况下,甚至可以作为本地系统上的交互式挂载点。

命令行界面提供了一个有趣的功能,可以将工作区挂载到您的本地机器。从您的终端,创建一个目录来挂载您的工作区。

复制
已复制!
            

$ mkdir test-ngc-mount

使用 ngc workspace mount 命令将上一节中创建的工作区挂载到这个新目录 - 通过 --mode RW 标志和参数以可读写模式挂载,以允许将数据复制到其中。

复制
已复制!
            

$ ngc workspace mount workspace-from-cli ./test-ngc-mount --mode RW Mounting complete.

一个 df -h 命令将显示系统上所有活动的挂载 - 在 Mounted on 列下查找 test-ngc-mount 路径。

复制
已复制!
            

$ df -h Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk1s5s1 466Gi 14Gi 279Gi 5% 500637 2926965480 0% / devfs 227Ki 227Ki 0Bi 100% 784 0 100% /dev /dev/disk1s4 466Gi 20Ki 279Gi 1% 0 2926965480 0% /System/Volumes/VM /dev/disk1s2 466Gi 259Mi 279Gi 1% 841 2926965480 0% /System/Volumes/Preboot /dev/disk1s6 466Gi 296Ki 279Gi 1% 16 2926965480 0% /System/Volumes/Update /dev/disk1s1 466Gi 171Gi 279Gi 38% 1475182 2926965480 0% /System/Volumes/Data map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /System/Volumes/Data/home YjNOamIyMXlNR1p0YWpkeGJtSnVielZyTlcwM2FHUTNiVFE2TURReVlUZ3pZbUl0TnpjMVppMDBaVEUwTFdFMVkyS 1.0Ti 0Bi 1.0Ti 0% 0 1000000000 0% /Users/jhandzik/test-ngc-mount

工作区可以像系统上的任何其他挂载点一样使用 - 让我们从之前的通过命令行工具部分的数据集上传中复制测试目录和测试文件。

复制
已复制!
            

$ cp -r base-command-test test-ngc-mount/

通过两个基本的 ls 命令证明目录和底层数据已被复制过来。

复制
已复制!
            

$ ls test-ngc-mount/ base-command-test

复制
已复制!
            

$ ls test-ngc-mount/base-command-test/ base-command-test-data

最后,使用 ngc workspace unmount 命令卸载目录。本地目录将是正确的参数 - 而不是通过 NGC CLI 定义的工作区名称。

复制
已复制!
            

$ ngc workspace unmount test-ngc-mount/ Successfully unmounted workspace.

再次使用 df -h 确认工作区挂载不再活动。

复制
已复制!
            

$ df -h Filesystem Size Used Avail Capacity iused ifree %iused Mounted on /dev/disk1s5s1 466Gi 14Gi 279Gi 5% 500637 2927127200 0% / devfs 227Ki 227Ki 0Bi 100% 784 0 100% /dev /dev/disk1s4 466Gi 20Ki 279Gi 1% 0 2927127200 0% /System/Volumes/VM /dev/disk1s2 466Gi 259Mi 279Gi 1% 841 2927127200 0% /System/Volumes/Preboot /dev/disk1s6 466Gi 296Ki 279Gi 1% 16 2927127200 0% /System/Volumes/Update /dev/disk1s1 466Gi 171Gi 279Gi 38% 1475268 2927127200 0% /System/Volumes/Data map auto_home 0Bi 0Bi 0Bi 100% 0 0 100% /System/Volumes/Data/home

让我们继续启动一个批处理作业,该作业类似于数据集创建部分中的作业,其中数据从互联网下载 - 这次,我们将工作区挂载到作业中的 /mount/workspace,并将数据下载到其中,而不是下载到 /results 目录(该目录仍然存在于此作业中 - 只是不用于保存用户创建的数据)。

复制
已复制!
            

$ ngc batch run --name "load-linux-into-workspace" --preempt RUNONCE --min-timeslice 0s --total-runtime 0s --instance dgxa100.80g.1.norm --commandline "cd /mount/workspace; wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.17.3.tar.xz; tar -xvf linux-5.17.3.tar.xz; rm -rf linux-5.17.3.tar.xz" --result /results --image "nvidia/pytorch:22.04-py3" --workspace workspace-from-cli:/mount/workspace:RW -------------------------------------------------- Job Information Id: 2873341 Name: load-linux-into-workspace Number of Replicas: 1 Job Type: BATCH Submitted By: Joseph Handzik Job Container Information Docker Image URL: nvidia/pytorch:22.04-py3 Job Commands Command: cd /mount/workspace; wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.17.3.tar.xz; tar -xvf linux-5.17.3.tar.xz; rm -rf linux-5.17.3.tar.xz Dockerfile Image Entrypoint: False Datasets, Workspaces and Results Workspace ID: JyrRwRmXQCuptjLaCFumkQ Workspace Name: workspace-from-cli Workspace Mount Point: /mount/workspace Workspace Mount Mode: RW Result Mount Point: /results Job Resources Instance Type: dgxa100.80g.1.norm Instance Details: 1 GPU, 30 CPU, 244 GB System Memory ACE: nv-launchpad-bc-sjc-ace Team: nvbc-tme Job Status Created at: 2022-05-03 17:23:38 UTC Status: QUEUED Status Type: OK Preempt Class: RUNONCE --------------------------------------------------

再次使用 ngc batch list 验证作业状态 - 请注意,您可能会看到列出多个作业,因此请务必检查作业名称以跟踪正确的作业。

复制
已复制!
            

$ ngc batch list +---------+----------+---------------------------+----------+------------------+----------+----------------+ | Id | Replicas | Name | Team | Status | Duration | Status Details | +---------+----------+---------------------------+----------+------------------+----------+----------------+ | 2873341 | 1 | load-linux-into-workspace | nvbc-tme | FINISHED_SUCCESS | 0:02:01 | | | 2870152 | 1 | aws-dl-cli | nvbc-tme | FINISHED_SUCCESS | 0:00:21 | | +---------+----------+---------------------------+----------+------------------+----------+----------------+

为了验证工作区是否如预期显示,我们可以再次在本地挂载它,并对其内容进行简单的调查。这次,我们可以使用 mode 参数 RO 进行挂载,它代表 read only - 这样做将确保我们不会意外修改工作区。

复制
已复制!
            

$ ngc workspace mount workspace-from-cli ./test-ngc-mount --mode RO Mounting complete.

基本的 ls 命令确认附加目录存在并如预期显示。

复制
已复制!
            

$ ls test-ngc-mount/ base-command-test linux-5.17.3

复制
已复制!
            

$ ls test-ngc-mount/linux-5.17.3/ COPYING Kbuild MAINTAINERS arch crypto include kernel net security usr CREDITS Kconfig Makefile block drivers init lib samples sound virt Documentation LICENSES README certs fs ipc mm scripts tools

记住在继续前进之前卸载工作区。

复制
已复制!
            

$ ngc workspace unmount test-ngc-mount/ Successfully unmounted workspace.

再次查看 ngc workspace list 的输出将确认增加的容量使用情况。

复制
已复制!
            

$ ngc workspace list --owned +------------------------+--------------------+-------------+----------------------+------------------+--------+---------------------+-------+---------+ | Id | Name | Description | ACE | Creator Username | Shared | Created Date | Owned | Size | +------------------------+--------------------+-------------+----------------------+------------------+--------+---------------------+-------+---------+ | JyrRwRmXQCuptjLaCFumkQ | workspace-from-cli | | nv-launchpad-bc-sjc- | Joseph Handzik | No | 2022-05-02 19:34:40 | Yes | 1.02 GB | | | | | ace | | | UTC | | | | a6CxaJmmQgK1OIcXR8-d5A | s3-demo-workspace | | nv-launchpad-bc-sjc- | Joseph Handzik | No | 2022-04-19 19:29:12 | Yes | 0 B | | | | | ace | | | UTC | | | +------------------------+--------------------+-------------+----------------------+------------------+--------+---------------------+-------+---------+

要利用通过 Web UI 创建的工作区,请再次从 Base Command 仪表板开始,然后单击 创建作业 按钮。

step-06-image-001.png

再次填写 创建作业 Web 表单 - 请注意,之前的作业和此作业之间的主要区别将是工作区的使用。

  1. 从列表中选择您的 ACE。

  2. 在 INSTANCE 表中选择 dgxa100.80g.1.norm。

  3. 选择 WORKSPACES 选项卡 - 单击 workspace-from-web-ui 旁边的框,并为其挂载点键入 /mount/workspace,确保挂载模式为 RW

  4. 在数据输出字段中输入 /results

  5. 选择 nvidia/pytorch 容器。

  6. 选择标签值 22.04-py3

  7. 对于命令,复制以下内容

复制
已复制!
            

curl 'https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip' -o 'awscliv2.zip'; unzip awscliv2.zip; ./aws/install -i /usr/local/aws-cli -b /usr/local/bin; aws s3 sync --no-sign-request --region=us-east-1 's3://safecast-opendata-public-us-east-1' '/mount/workspace'


  1. 表单的其余部分可以保留默认值。

为了验证是否选择了正确的选项,请对照下面屏幕截图中的值检查屏幕上的 ngc batch run 命令(--name 参数将有所不同,--ace--org 参数也可能有所不同)。准备就绪后,单击页面右上角附近的 启动作业 按钮。

step-06-image-002.png

作业不应运行太长时间 - 假设 ACE 相对空闲,大约 5 分钟。您可能需要刷新页面以验证作业状态是否为 Finished Success

导航到 工作区 页面,而不是查看作业 - 记住,我们没有将任何数据移动到 /results 目录,因此除了日志文件外,它不会显示任何内容。

step-06-image-003.png

我们使用的工作区在几分钟后应显示非零数据大小,如下面的屏幕截图所示。如果您想与目录结构交互,您可以使用 NGC CLI 工具挂载此工作区 - 只需记住在完成后卸载它!

step-06-image-004.png

© 版权所有 2022-2023,NVIDIA。 上次更新时间:2023 年 1 月 10 日。