TACC 集群使用笔记

1注册账号

先在网页上注册账号,之后需要联系导师或者管理员把你添加到对应的集群里去,例如我加入的是 Lonestar6 集群。

之后需要跟着这个教程绑定 MFA 软件(可以是 DUO 或者 1password)

MFA 绑定

之后登录账号,系统会要求先后输入你的账户密码和 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 和 Compute 节点

成功登入后,默认进入 login 节点下的 /home目录,一般而言我们需要进入 /scratch 目录。大多数TACC HPC资源上挂载了三个文件系统:$HOME$WORK、和$SCRATCH,以下是它们的区别、使用场景和注意事项的总结:

在Lonestar6高性能计算系统中,HOMEWORKSCRATCH路径的使用场景分别如下:

  1. HOME路径
    • 使用场景:主要用于存储用户个人的文件,如配置文件、源代码、小型数据集等。
    • 特点:这个目录是用户个性化的,其他用户无法访问。它的空间通常较小,不适合存储大量数据。
    • 建议用途:存储个人设置、备份的代码、文档等。
  2. WORK路径
    • 使用场景:用于存储需要跨TACC系统共享的文件,如大型数据集、中间结果等。
    • 特点:WORK路径是全局共享的,可以在TACC的不同系统之间访问,空间相对较大。
    • 建议用途:共享项目数据、协作研究的大型文件、需要在不同系统间传输的数据。
  3. 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节点。

微信公众号:AutoML机器学习
MARSGGBO原创
如有意合作或学术讨论欢迎私戳联系~
邮箱:marsggbo@foxmail.com

posted @ 2024-04-10 14:26  marsggbo  阅读(63)  评论(0编辑  收藏  举报