1 中国科学技术大学计算环境
1.1 登陆节点
登陆结点是用户使用计算平台的唯一接口。用户在登陆结点编辑文件、调试程序、提交作业。用户使用账号和密码连接登陆结点成功后,即可使用相应的计算资源。
序号 | 登陆节点操作系统 | 数量 | IP |
---|---|---|---|
1 | CentOS Linux 7.8 (64 bit) | 1 | 202.141.163.220 |
2 | CentOS Linux 7.8 (64 bit) | 1 | 202.141.163.221 |
3 | CentOS Linux 7.8 (64 bit) | 1 | 202.141.163.222 |
1.2 SSH登陆集群
本节分别介绍 Linux、Windows 和 macOS环境下如何通过 ssh 登陆集群的方式。
1.2.1 Linux 下登陆集群
Linux 下最方便的是通过终端直接 ssh 登陆到集群。
[user@localhost ~] ssh username@202.141.163.220
Password:
1.2.2 macOS 下登陆集群
macOS 下登陆集群的方式参考 Linux 下的登陆方式。
1.2.3 Windows 下登陆集群
Window 下没有原生的 SSH 客户端,需要安装第三方软件。 Windows 10 中带有原生 SSH 客户端,可通过添加功能添加 OpenSSH 功能。
1) SSH 客户端
Windows 下有很多 SSH 客户端软件,下面是一些比较常用的:
· Putty - 老牌的 SSH 客户端,十分小巧。
· MobaXterm - 带有 Xserver 和 SSH,支持标签页。
· Solar Putty - 支持标签页的 Putty。
· WinSCP - 非常好用的 SSH 客户端。
· Bitvise SSH - SSH Client 免费。
· Xshell - 商业软件,有免费的个人和教育版。
· WSL for Windows - Windows 10 的优选之一,可以完整使用 Linux 终端环境。
2) 登陆示例
下面以 Putty 为例,说明如何登陆集群。
\1. 从官网 下载安装包安装 。
\2. 打开 Putty,在 Host Name那里填上 user@hostname, 端口 Port 一般为 22。填写好后可以点击下面的 save 保存 session。如有保存 Session, 可以选中 session,点击 load。如图所示。
\3. 若想使用密钥登陆,在 Connection
-> SSH
-> Auth
里,填写自己的 密钥路径,如图红框内所示。
\4. 登陆集群。 点击下方的 Open
。首次连接会提示服务器指纹,选择是或否。“是”将保存指纹,“否”则不保存。保存后登录同一台服务器将不再提示(如果提示,则表示服务器指纹发生了变化,可能是重装系统所致)。
图 3.1-4 忽略连接中可能的警告提示。
若没有选择密钥登陆,则会要求输入密码。
1.2.4 密码修改
密码口令安全防范要求 (1)不要使用弱口令。应使用 4 种类型字符(大小写字母、数字、特殊字符)、至少 10 位的口令。且不要包含用户名、个人信息、常见单词、简单字母序列、数字序列或键盘按键序列。 (2)不要在所外公共信息系统(比如微信、QQ、各类网站或APP等)使用和站点账户一样的口令。 (3)定期修改口令,建议一年修改一次。 (4)不得将账号口令借给他人使用
在登陆节点上登陆后执行passwd命令,密码修改后10分钟后新密码生效
[liming@ui ~]$ passwd
Changing password for user zhengw.
Changing password for zhengw.
(current) UNIX password:
New "Require:Upcase,Lowercase,Digit,SpecialCharacter,>10lenght" password:
Retype new "Require:Upcase,Lowercase,Digit,SpecialCharacter,>10lenght" password:
passwd: all authentication tokens updated successfully.
密码修改后10分钟后新密码生效,如果要连续修改密码需要间隔10分钟
1.3 作业运行提交查看
集群使用HTCondor作为作业调度系统,HTCondor支持高通量计算(High Throughput Computing), 具有快速吞吐计算任务的特点,适合当前计算环境。 目前集群资源如下:
资源类型 | 资源数量 | 备注 |
---|---|---|
CPU | 约2000核 | |
GPU | 32块GPU卡 | 4台节点,单节点8块卡 |
1.3.1 作业提交
提交作业前,准备一个jdl作业描述文件,jdl文件里需要指明作业脚本路径、标准输出和标准错误文件,提交该jdl文件即可。例如:
- 已知作业脚本test_job.sh(脚本内容为示例,以实际作业为准):
#!/bin/bash
echo "This job is running on $(hostname)."
echo "We're doing a simple operation:"
result=$(expr 1 + 1)
echo " 1+1=$result"
echo "Job Done!"
注意, 该脚本必须有可执行权限(主要影响场景:使用共享文件系统提交作业),设置脚本可执行权限:
chmod 755 test_job.sh
- 编写作业描述文件test_job.jdl:
universe = vanilla
executable = test_job.sh
output = test_job.sh.out.$(Cluster).$(Process)
error = test_job.sh.error.$(Cluster).$(Process)
accounting_group = short
queue
其中,universe属性没有特别需要,不必修改;executable属性为作业脚本路径;output属性为标准输出文件,error属性为标准错误文件;最后一行以queue结尾,无特别需要,不必修改。 注意, 集群支持2种时长的作业,short作业时长限制为8小时,long作业时长限制为14天(long作业支持的资源数量有限),在提交作业时必须要指定属性accounting_group,如示例所示short作业属性值为short,long作业属性值为long。
- 运行命令condor_submit提交作业:
condor_submit test_job.jdl
- 多核作业
在jdl文件中增加request_cpus属性, 如申请32核资源,jdl文件内容如下:
universe = vanilla
executable = test_job.sh
output = test_job.sh.out.$(Cluster).$(Process)
error = test_job.sh.error.$(Cluster).$(Process)
request_cpus = 32
queue
- GPU作业
在jdl文件中增加request_gpus属性,如申请2块GPU卡,jdl文件内容如下:
universe = vanilla
executable = test_job.sh
output = test_job.sh.out.$(Cluster).$(Process)
error = test_job.sh.error.$(Cluster).$(Process)
request_gpus = 2
queue
1.3.2 作业状态查询
- 查询指定用户作业,例如,查询用户xiaoming的作业:
condor_q xiaoming
- 查询指定ID作业,例如,查询ID为1001的作业:
condor_q 1001
- 如果作业状态为'H', 表明作业被挂起,可使用如下命令查看H原因:
condor_q 1001 -hold
1.3.3 作业删除
- 删除指定用户作业,例如,删除用户xiaoming的作业:
condor_rm xiaoming
- 删除指定ID作业,例如,删除ID为1001的作业:
condor_rm 1001
1.3.4 其它
详细HTCondor使用说明,参考:
https://htcondor.readthedocs.io/en/stable/users-manual/index.html
1.4 容器使用
Singularity是目前在高性能计算平台上被大量应用的轻量虚拟化容器技术,能够提供操作系统级的虚拟化。 Hep_container是基于singularity容器管理命令开发的适用于高能所计算集群的容器客户端工具,满足用户使用多种操作系统版本及环境的需求。 说明:本文涉及的命令均需要在登陆节点上运行,所用命令在以下目录,建议将下面目录加入用户个人环境变量 PATH 中。
/cvmfs/container.ihep.ac.cn/bin/
1.4.1 命令说明
Hep_container的容器命令主要有三种操作images、shell、exec。可以在命令行中通过help参数查看各个命令的使用说明和样例
$ ./hep_container help
Usage : ./hep_container <command> [command options...]
CONTAINER USAGE COMMANDS:
shell Run a Bourne shell within container image
exec Execute a command within container image
images List Support container images
groups List Support groups
-g groupname With a specific group name
EXAMPLES:
./hep_container images
./hep_container groups
./hep_container shell SL5
./hep_container shell SL5 -g physics
./hep_container exec SL5 cat /etc/redhat-release
./hep_container exec SL5 python ./yourprograme.py
./hep_container exec SL5 -g physics cat /etc/redhat-release
1.4.2 查看支持镜像
命令格式:hep_container images 该指令可以查看当前提供的操作系统容器镜像。
$ hep_container images
Hep_container support images:
SL5 : Scientific Linux 5
SL6 : Scientific Linux 6
1.4.3 查看支持用户组/实验组
命令格式:hep_container groups 该指令可以查看容器命令当前支持提供的用户组或者实验组。通过 -g 参数指定用户组或实验组,容器内会挂载对应用户目录和实验目录。不指定-g参数默认采用主组作为用户组或实验组。
$ hep_container groups
Hep_container support groups:
storm|ATLAS|BESIII|STCF|
1.4.4 容器环境使用
命令格式:hep_container shell [container image] 该指令可以在容器内启动一个shell,因此可以在容器外部与容器内部进行交互操作。运行exit则可以退出该shell。 下例为运行启动一个SL6操作系统镜像后,用户当前为SL6的系统环境.
$ hep_container shell SL6
Singularity: Invoking an interactive shell within container...
Singularity> cat /etc/redhat-release
Scientific Linux SL release 6.9 (Carbon)
Singularity> exit
exit
1.4.5 容器内执行命令
命令格式:hep_container exec [container image] [command] 该指令可以在外部主机上将指定的command运行在指定的容器内。 下例为在SL6的环境容器运行命令,并得到结果。
$ hep_container exec SL6 cat /etc/redhat-release
Scientific Linux release 6.9 (Carbon)
1.5 文件存储服务
1.5.1 用户文件存储
计算中心部署了多套存储系统,为用户和实验组提供存储空间,用于保存软件、脚本和一些实验数据,用户可以在自己有权限的目录下提交作业,具体信息如下表所示。
目录 | 用途 | 访问入口(客户端) | 空间大小 |
---|---|---|---|
/home | 用户根目录 | 所有节点 | 28T |
/ustcfs | 实验数据 | 所有节点 | 1.2P |
/ustcfs2 | 实验数据 | 所有节点 | 339TB |
1.5.2 CVMFS软件文件存储
CernVM-FS文件系统提供可伸缩、可靠和低维护的软件分发服务。帮助高能物理在用于运行数据处理应用程序的全球分布式计算基础设施上部署软件。CernVM-FS实现为用户空间中的POSIX只读文件系统(FUSE模块)。文件和目录驻留在标准web服务器上,并挂载在通用名称空间/cvmfs中,供用户作业读取软件,保证集群作业的正常运行。
CVMFS系统当前包含IHEP和Cern建立的多个软件卷,为不同实验作业提供软件环境,主要一些IHEP建立的实验卷信息如表1所示:
路径 | 用途 |
---|---|
/cvmfs/bes3.ihep.ac.cn | 提供bes3所需的软件库 |
/cvmfs/bes.ihep.ac.cn | 提供bes所需的软件库 |
/cvmfs/cepc.ihep.ac.cn | 提供cepc实验所需的数据分析软件 |
/cvmfs/dcomputing.ihep.ac.cn | 提供分布式计算实验所需的数据分析软件 |
/cvmfs/gluex.ihep.ac.cn | 提供gluex实验所需的数据数据分析软件 |
/cvmfs/heps_ap.ihep.ac.cn | 提供HEPS实验所需的数据数据分析软件 |
/cvmfs/juno.ihep.ac.cn | 提供juno实验所需的数据分析软件 |
/cvmfs/lhaaso.ihep.ac.cn | 提供lhaaso实验所需的数据分析软件 |
/cvmfs/mlgpu.ihep.ac.cn | 提供gpu机器学习相关软件 |
表1 CVMFS软件卷概况