TACC 集群使用笔记
1注册账号
先在网页上注册账号,之后需要联系导师或者管理员把你添加到对应的集群里去,例如我加入的是 Lonestar6 集群。
之后需要跟着这个教程绑定 MFA 软件(可以是 DUO 或者 1password)
之后登录账号,系统会要求先后输入你的账户密码和 MFA 的 6 位数 token
local@username$ ssh username@ls6.tacc.utexas.edu
(username@ls6.tacc.utexas.edu) Password:
(username@ls6.tacc.utexas.edu) TACC Token Code:
login1.ls6(22)$ cd $SCRATCH/
login1.ls6(23)$
密码都正确之后你会进入到 login 节点,在这里千万不能随意执行大规模的计算任务,因为很有可能会被封号。你需要使用 compute 节点执行计算任务。
成功登入后,默认进入 login 节点下的 /home
目录,一般而言我们需要进入 /scratch
目录。大多数TACC HPC资源上挂载了三个文件系统:$HOME
、$WORK
、和$SCRATCH
,以下是它们的区别、使用场景和注意事项的总结:
在Lonestar6高性能计算系统中,HOME
、WORK
和SCRATCH
路径的使用场景分别如下:
- HOME路径:
- 使用场景:主要用于存储用户个人的文件,如配置文件、源代码、小型数据集等。
- 特点:这个目录是用户个性化的,其他用户无法访问。它的空间通常较小,不适合存储大量数据。
- 建议用途:存储个人设置、备份的代码、文档等。
- WORK路径:
- 使用场景:用于存储需要跨TACC系统共享的文件,如大型数据集、中间结果等。
- 特点:WORK路径是全局共享的,可以在TACC的不同系统之间访问,空间相对较大。
- 建议用途:共享项目数据、协作研究的大型文件、需要在不同系统间传输的数据。
- SCRATCH路径:
- 使用场景:用于存储计算作业期间产生的大量临时数据,尤其是那些不需要长期保留的数据。
- 特点:SCRATCH路径提供快速访问,但空间有限,且不保证数据持久性。系统可能会定期清理这个目录中的数据。
- 建议用途:存储计算作业的中间结果、大型临时数据文件、不需要长期保存的数据。
总的来说,HOME路径适合个人文件和配置,WORK路径适合需要跨系统共享的文件,而SCRATCH路径则适用于临时和大量数据的存储。这些路径的设计旨在优化存储效率、数据共享和系统性能。
从实操性的角度说,进入computing node 后,默认先进入的是HOME
目录,在这里你可以先设置好 conda 环境。接着,假如你要运行一个 pytorch 代码,你需要cd $SCRATCH
才能使用 GPU,这个目录下运行代码保存的日志是临时的,你需要将重要文件备份到 $WORK
目录下。
2. 交互式开发环境 idev
idev
是一个用于在TACC(Texas Advanced Computing Center)集群上创建交互式计算环境的命令行工具,可以在计算节点上创建一个交互式会话,可以在其中执行串行、OpenMP并行或MPI并行的代码,就像在批处理作业中一样。。以下是关于 idev
的一些主要用法和选项的介绍:
2.1 idev
参数选项:
-A account_name
:设置账户名称(默认为-A use_default
)。-m minutes
:设置计算时间(默认为 30 分钟)。-n total_tasks
:设置总任务数。-N nodes
:设置节点数量。-tpn tpn
:设置每节点任务数。-p queue_name
:设置队列名称(默认为-p development
)。-R
:查找用户的预约。-r reservation_name
:请求使用特定的预约。-r none
:禁用预约检查。-E
:在作业开始时通知。-e email_address
:在作业开始时通过指定的电子邮件地址通知。-t hh:mm:ss
:设置计算时间(默认为 30 分钟)。-queues
:列出系统的队列。-pselect
:显示可选择的 Slurm 队列。-qselect
:显示可选择的 Slurm 队列。-- <other SLURM options>
:必须在所有 idev 选项之后使用,用于指定其他 Slurm 选项。
2.2 示例
# 默认设置:1 节点,16 任务,30 分钟,使用默认账户
idev
# 显示帮助信息
idev --help
# 设置队列、时间和账户
idev -p development -m 90 -A AB-ccviss
# 设置队列、时间、账户、节点和任务数
idev -p normal -t 00:90:00 -A TG-STA123 -N 2 -n 16
# 显示可选择的 Slurm 队列
idev -pselect
# 设置交互式会话的最长时间为2小时, 1个节点,4 个任务,请求在 development 队列中执行计算任务
idev -t 02:00:00 -N 1 -n 4 -p development
上面最后一个例子使用的是名为development
的节点,你也可以先使用sinfo
命令查看所有节点,然后手动设置成空闲的节点,例如:
$ sinfo
gpu-a100 up infinite 1 drain* c317-003
gpu-a100 up infinite 67 alloc c302-[001-004],c303-[001-004],c305-[001-002,004],c306-[002-004],c308-[001-004],c309-[001-004],c310-[001-004],c315-[001,003-016],c316-[001-002,007-016],c317-[001-002,004-008,010-016]
gpu-a100 up infinite 5 idle c304-001,c305-003,c306-001,c316-003,c317-009
gpu-a100-dev up infinite 2 alloc c301-[001,004]
$ idev -t 02:00:00 -N 1 -n 4 -p gpu-a100-dev
上面命令会自动申请一个空闲的gpu-a100-dev
节点。