服务器、超算使用教程
服务器、超算使用教程
服务器、超算介绍
Master
- Linux 系统:Ubuntu 22.04,内核:5.19.0-43-generic
- root 权限:无;无法使用 apt、apt-get、dpkg、snap 命令安装程序
- 任务调度系统:Slurm
- CPU:2 $\times$ 32 核 Intel Xeon Platinum 8369B,共 64 核
- GPU:2 $\times$ 24G RTX 3090;调用 GPU 时只能一整块调用,显存自动分配
- Intel 套件:Intel-oneAPI 2022.1.0
- 内存:共 512G
- 数据存储:较大体积的数据(Master 本地或超算上的)可以放到
${HOME}/storage
/home/share
目录,不同用户可将临时共享文件放此,所有用户可删除文件,但文件夹需其所有者才能删除,因此建议将文件夹进行打包压缩再放到 share 目录中
1 | cat /proc/cpuinfo # CPU 信息查看;或 lscpu |
- Master 上已安装的孔老师的程序/软件:
cat /opt/bin/README
查看
1 | # Code Function |
Intel Xeon CPU 相关
Intel 至强处理器的数字和后缀可以表示性能、功能和代次 英特尔® 至强® 可扩展处理器编号和后缀
- 四位数字序列的第一个数字表示处理器级别:8、9 铂;
- 第二个数字表示处理器代次:1-6
- 第三位和第四位数字表示 SKU 编号:这些数字不代表任何特定功能。通常,性能越好的处理器具有较大的 SKU 编号
GPU 相关
llm_note/4-hpc_basic/英伟达GPU架构总结.md at main · harleyszhang/llm_note · GitHub(含 V100、A100、H100 GPU 介绍)
NVIDIA GPU 参数:
- CUDA Core(NVIDIA GPU 的计算核心单元)
- Tensor Core(专门用于深度学习任务中的张量计算)
- RT Core(加速光线追踪计算)
NVIDIA GPU 架构:Volta(伏特,第 6 代)、Turing(图灵,第 7 代)、Ampere(安培、第 8 代)、Hopper(霍珀,第 9 代)
V100、A800(A100 中国特供版)、H800(H100 中国特供版)
查看 CUDA 是否安装(分为两种,驱动 driver 和运行 runtime)
1 | nvidia-smi # 查看 NVIDIA 驱动及其支持的 CUDA 驱动最高版本 |
GPU 信息及使用情况查看:
nvidia-smi
、gpustat - Python
1 | watch -d2 nvidia-smi # 持续查看 GPU 使用情况 |
- 输出信息解读:两个 GPU 都在高负载运行(GPU 利用率 100%,温度分别为 77 摄氏度和 72 摄氏度),并且接近其功率上限。GPU 上的内存几乎被完全利用,表明运行的进程正在积极使用 GPU 资源
1 | # GPU 列表 |
- 指定使用哪块 GPU(适用于 TensorFlow 和 PyTorch 等任何使用 CUDA 的程序)
1 | # 指定使用第一块 GPU |
1 | import torch |
Manager
- Linux 系统:Ubuntu 16.04;内核:4.15.0-120-generic
- root 权限:无;无法使用 apt、apt-get、dpkg、snap 命令安装程序
- 任务调度系统:PBS
- CPU:Intel Xeon E5520、Intel Xeon E5630(node 9)、Intel Xeon E5-2620(node 11);共 100 核,共 12 个节点(node1~11 + manager;其中 node2,6,7,8 经常 down)
- GPU:Matrox Electronics Systems Ltd. MGA G200eW WPCM450、XGI Technology Inc. XG20 core(前两者主要用于服务器的视频输出和基本图形处理任务)、2 $\times$ 4.6G NVIDIA Tesla K20m(node 11)
- 内存:登录、Manager 节点约 4G;node 11 约 16G;node 1, 3-5 约 24G;node 9-10 约 16G
- Intel 套件:Composer XE 2015
- glibc 版本过低(编译安装新版本较为复杂)
超算
- 计算系统 - 上海交大超算平台用户手册
- Linux 系统:Rocky Linux(基于 Centos)
- root 权限:无;无法使用 yum 命令安装软件程序
- 任务调度系统:Slurm;Pi、ARM、思源一号提交的任务在任一平台都可以看到
- CPU、内存:超算中的 CPU 核有内存配比限制
- GPU:超算的 GPU 队列很难排到
- 程序/软件:Pi 的一些基础程序的版本比思源一号旧许多;查看:
module av
- Pi 和 ARM 用户目录相同
- sylogin1 登录节点占用率较高,比其他(2-5)卡,是超算断开连接,vim 使用卡顿的可能原因之一;超算的登录节点为随机分配,应尽量避免登录到 sylogin1
服务器、超算登录
SSH 登录
超算平台的 SSH 端口均为默认值 22,
-p 22
可省略登录密码输错 5 词,需等待一段时候才能再次登录
1 | # manager |
终端 SSH 免密登录
上海交通大学超算管理系统:HAM
交大超算登录现需要与 jAccount 绑定:账号安全信息管理 - 上海交大超算平台用户手册 Documentation
无需输入用户名和密码即可登录,还可以作为服务器的别名来简化使用。免密登录需建立从远程主机(集群的登录节点)到本地主机的 SSH 信任关系。建立信任关系后,双方将通过 SSH 密钥对进行身份验证。
在本地主机上生成的 SSH 密钥对,输入以下命令,持续 Enter 即可;将在
~/.ssh
(或C:\User\username\.ssh
) 路径下生成密钥对文件id_rsa
和id_rsa.pub
;将id_rsa.pub
的内容(注意字符之间只有一个空格,复制后需注意)添加到远程主机的~/.ssh/authorized_keys
文件中。
1 | ssh-keygen -t rsa |
密钥对生成方式有 ssh-keygen 和 putty(ppk 格式,WinSCP 软件密钥验证需该格式),其中后者可通过 Mobaxterm 软件中 tool 工具中的 MobaKeyGen 来生成(在空白处乱按加快生成速度;将生成的公钥保存成 file.pub,私钥保存成 file.ppk)。
设置服务器别名:编辑或创建
~/.ssh/config
(或C:\User\XXX\.ssh\config
)
1 | Host alias |
- 具体示例:
1 | Host Manager |
- 设置完成后,只需输入以下内容即可实现服务器、超算 SSH 登录:
1 | ssh Master |
- 可能会出现的问题
- SSH 私钥的权限过于开放:SSH 私钥文件应该只能被文件的拥有者读取和写入,而不能被其他用户访问
- 解决方法:
chmod 600 id_rsa
1 | Permissions 0444 for 'id_rsa' are too open. |
客户端免密登录
常用软件:MobaXterm、Tabby(有 交我算定制版客户端) 等。
免密登录操作:将
id_rsa
私钥文件所在路径添加到 Use private key 选项中(Bookmark settings 选项可以将默认的 Session name 改成自己想要的别名)。
VSCode 免密登录
安装 Remote Development 扩展,如上面的
~/.ssh/config
内容已设置好,会自动识别设置好的主机名(config 文件所在路径可自定义)VSCode 远程连接 Manager(机子较老,10 余年历史),有时会导致其负载过高而崩溃,不建议长时间连接;VSCode 远程连接 Master(2023 年 5 月配置)暂无相关问题
在超算上使用 Python 插件中的 Pylance 语言服务器(LSP)以及 Jupyter 插件,常会出现 Pylance 崩溃的问题(Pi 稍微稳定些),因为超算的登录节点资源有限,建议将 Pylance 换成 Jedi(功能不及 Pylance),会稍微稳定些;建议不在超算平台上使用 Jupyter Notebook;Master 暂无相关问题
任务准备、提交、检查
Slurm 任务调度系统
通过 Jobid 来进入计算目录:A12 通过job-ID快速进入计算目录 - Learn VASP The Hard Way
1 | # 常用命令 |
PBS 任务调度系统
Manager 为此作业调度系统
submit
命令是孔老师写的一个 PBS 任务提交脚本-nc
参数含义:不将文件复制到计算节点中;推荐用带-nc
参数的命令提交任务命令会自动生成对应的
PBS.batch
脚本;当提交的任务出错时,修改PBS.batch
脚本内容,之后可使用qsub PBS.batch
命令提交任务
1 | # 常用命令 |
- Manager 中与 PBS 相关的一些 alias 设置
1 | # 查看 q 相关命令 alias |
超算队列介绍
超算队列内存情况
- arm128c256g 每核 2G 内存 arm
- 64c512g 每核 8G 内存 siyuan
- cpu 每核 4G 内存 pi
- small 每核 4G 内存 pi
- dgx2 每核 6G 内存 pi
- huge 每核 35G 内存 pi
- 192c6t 每核 31G 内存 pi
- cpu,small 和 dgx2 队列作业运行时间最长 7 天,huge 和 192c6t 最长 2 天。作业延长需发邮件申请,附上用户名和作业 ID,延长后的作业最长运行时间不超过 14 天
队列资源选择
- 若是大规模的 CPU 作业,可选择 CPU 队列或思源一号 64c512g 队列,支持万核规模的并行
- 若是小规模测试,可选 small 队列或思源一号 64c512g 队列
- GPU 作业请至 dgx2 队列或思源一号 a100 队列
- 大内存作业可选择 huge 或 192c6t 两种队列
192c6t 和 huge 大内存队列,核数有一定要求,且排队时间较长
1 | # 192c6t 队列 |
- 超算收费情况(2023.05.30)
1 | 交我算平台集群总费用为CPU,GPU和存储费用之和。费率标准如下: |
1 | module avail/av # 查看超算预部署软件模块 |
任务提交示例
- SBATCH 参数
1 | --job-name=[name] # 或 -J;任务名称 |
VASP
1 |
|
LAMMPS
1 |
|
Python
1 |
|
Shell
1 |
|
Master 任务提交脚本示例
不建议跨 node[1-2] 与 master 节点(这 2 种节点的 CPU 世代不同)
使用 node[1-2] 中的 2 个节点
1 | #SBATCH -p cpu |
- 使用 node[1-2] 中的 1 个节点(不指定节点)
1 | #SBATCH -p cpu |
- 使用 node[1-2] 中的 1 个节点(指定节点)
1 | #SBATCH -p cpu |
- VASP
1 |
|
- LAMMPS
1 |
|
- NEP & GPUMD
1 |
|
任务状态检查
- 任务提交后,会生成
jobid.err
和jobid.out
文件err
文件为空(大部分情况下),表示提交的任务未出错err
文件不为空,表示提交的任务出错;需查看err
文件中的出错提示,进行修改- 若
err
、out
文件出现以下内容,大概率为超算平台出现故障,请与相关负责人联系
1 | # err 文件内容 |
相关问题
数据传输
参考:
- 数据共享与传输 - 上海交大超算平台用户手册 Documentation
- 提高数据传输速度(利用外部指令并发多个 scp/rsync 进程):数据传输技巧 - 上海交大超算平台用户手册 Documentation
超算进行数据传输一般在 data 节点上进行。超算传输节点
1 | data.hpc.sjtu.edu.cn # Pi |
命令行
scp:Secure Copy,基于 SSH 协议进行文件传输,不支持增量传输
rsync:支持 SSH 协议或 rsync 协议、增量传输、支持本地和远程同步、支持断点续传
因安全策略升级,在集群的终端上不支持 scp/rsync 的远程传输功能,所以需要从用户本地终端使用 scp/rsync 命令:数据传输方案和传输节点 - 上海交大超算平台用户手册 Documentation
rsync 显示整体进度(不太好用):Overall Progress with rsync - Dave Dribin’s Blog
1 | # scp 语法 |
客户端
软件主要使用 WinSCP;免密登录操作见下图:
Manager 与超算间的数据传输
- 上传与下载:孔老师写的 upload 与 download 脚本
- Manager 与 Pi:
upload -s P
或将P
改成H
或h
- Manager 与思源一号:将
P
改成s
- Manager 与 Pi:
1 | # 上传 |
程序编译/安装
- 在超算上编译程序,由于登录节点资源有限,需在计算节点上进行,需申请临时计算节点(一个核即可)
1 | # Pi |
posconv、NumNei、latgen、dumpana、atomsk
VASP.5.4.4、VASP.6.3.0、HDF5、VTST:VASP 编译 - Wiki of NES Lab
超算高版本 glibc 编译:glibc - 上海交大超算平台用户手册 Documentation
超算上没有 mpi4py(需自己安装):Mpi4py - 上海交大超算平台用户手册 Documentation
源码编译
编译前,需理解 Makefile 文件中的命令含义!
1 | ./configure # 配置、生成 Makefile 文件 |
vaspkit
- VASP 预、后处理工具;Overview — VASPKIT 1.5 documentation
- 预处理:不同计算任务的输入文件生成与检验;结构对称性分析等
- 后处理:力学性质;能带;态密度;费米面分析等
- 安装:在 vaspkit - Binaries 中下载 vaspkit 最新版本,解压,拷贝配置文件,对可执行文件设置软链接
1 | cp how_to_set_environment_variables ~/.vaspkit |
- 赝势:可拷贝 Master 或 Manager 上的赝势上传到超算目录;赝势格式如下:
1 | pseudopotentials |
1 | vaspkit -help # 查看帮助 |
sqsgen
- 安装:How to install sqsgen? — sqsgenerator 0.2 documentation
- 命令行使用:CLI reference — sqsgenerator 0.2 documentation
- 多亚点阵 sqsgen 生成示例:Advanced topics — sqsgenerator 0.2 documentation
sqs 生成程序
- 目标函数为 WC 参数;
- 生成速度相比 ATAT 及 ICET 相关模块要快,功能也更多;
- 10000 个原子构型的 sqs 生成速度在 2min 以内;
- 可事先估计生成 sqs 结构所耗费时间;可计算 WC 参数等;
- 浓度用具体的原子数目表示,比百分比形式更方便;
- 有 OpenMP 和 OpenMP+MPI 两种版本。
conda 版本(OpenMP 版本)
1 | conda create --name sqsgen python=3 |
编译版本(OpenMP+MPI)
1 | conda create --name sqsgen -c conda-forge boost boost-cpp cmake gxx_linux-64 libgomp numpy pip python=3 |
- OpenMP 版本
1 | conda activate sqsgen |
- OpenMP+MPI 版本
1 | conda activate sqsgen |
交我算常见问题总结
以下是使用 “交我算” 过程中可能遇到的常见问题总结:
充值/费率
- 计费系统 (HPC 账号和密码登陆):https://account.hpc.sjtu.edu.cn
- 充值方法:https://net.sjtu.edu.cn/info/1244/2392.htm
- 费率问题:请用交大邮箱发送至 hpc@stju.edu.cn 咨询
致谢模版
- “交我算” 用户在发布科研成果或论文时,应标注 “本论文的计算结果得到了上海交通大学交我算平台的支持和帮助”(The computations in this paper were run on the π 2.0 (or Siyuan Mark-I) cluster supported by the Center for High Performance Computing at Shanghai Jiao Tong University). 论文发表后,欢迎将见刊论文通过邮件发送到 hpc@sjtu.edu.cn。
登录问题
- 连不上集群: https://docs.hpc.sjtu.edu.cn/faq/index.html#id6
- 登录常掉线:https://docs.hpc.sjtu.edu.cn/login/index.html#id10
- HPC studio 登录问题:https://docs.hpc.sjtu.edu.cn/studio/faq.html#hpc-studio-proxy-error
- Jupyter、Rstudio 连接提示需要输入密码:https://docs.hpc.sjtu.edu.cn/studio/faq.html#jupyterrstudio
排队问题
- status 监控系统:https://status.hpc.sjtu.edu.cn,该系统包含各队列上线节点数、排队数、作业数等信息
- π集群排队问题:思源一号可用 CPU/GPU 资源更多,欢迎使用思源一号。
- 通过 squeue 查看作业,NODELIST(REASON) 为 resources/priority 表示正常排队,AssocGrpNodeLimit 表示欠费。
作业问题
- 报错作业咨询,请将用户名、作业 ID、路径、作业脚本名邮件发至 [email protected]。
- NodeFail:计算节点故障导致作业运行失败,重新提交作业即可,失败作业的机时系统会自动返还。
- 运行程序时提示缺少 xxx.so 文件或者显示任务被 kill:如果是在登录节点出现该报错,请申请计算节点再做尝试。
软件安装问题
- 如何在集群上安装软件:https://docs.hpc.sjtu.edu.cn/faq/index.html#id16
- 商业软件问题:https://docs.hpc.sjtu.edu.cn/faq/index.html#id17
数据传输问题
- $\pi$ 集群传输至思源一号:https://docs.hpc.sjtu.edu.cn/transport/index.html#id4
常用链接
- HPC 网站:https://hpc.sjtu.edu.cn
- 用户文档:https://docs.hpc.sjtu.edu.cn
- 超算用户简明手册:https://docs.hpc.sjtu.edu.cn/_static/hpcbriefmanual.pdf
- 集群实时利用率:https://account.hpc.sjtu.edu.cn/top
- 公众号/视频号:交我算