步骤 #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 仪表板开始,然后单击 创建作业 按钮。

再次填写 创建作业 Web 表单 - 请注意,之前的作业和此作业之间的主要区别将是工作区的使用。
从列表中选择您的 ACE。
在 INSTANCE 表中选择 dgxa100.80g.1.norm。
选择 WORKSPACES 选项卡 - 单击
workspace-from-web-ui
旁边的框,并为其挂载点键入/mount/workspace
,确保挂载模式为RW
。在数据输出字段中输入
/results
。选择
nvidia/pytorch
容器。选择标签值
22.04-py3
。对于命令,复制以下内容
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'
表单的其余部分可以保留默认值。
为了验证是否选择了正确的选项,请对照下面屏幕截图中的值检查屏幕上的 ngc batch run
命令(--name
参数将有所不同,--ace
和 --org
参数也可能有所不同)。准备就绪后,单击页面右上角附近的 启动作业 按钮。

作业不应运行太长时间 - 假设 ACE 相对空闲,大约 5 分钟。您可能需要刷新页面以验证作业状态是否为 Finished Success
。
导航到 工作区 页面,而不是查看作业 - 记住,我们没有将任何数据移动到 /results
目录,因此除了日志文件外,它不会显示任何内容。

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