1 中国科学技术大学计算环境

1.1 登陆节点

登陆结点是用户使用计算平台的唯一接口。用户在登陆结点编辑文件、调试程序、提交作业。用户使用账号和密码连接登陆结点成功后,即可使用相应的计算资源。

序号 登陆节点操作系统 数量 IP
1 AlmaLinux 9.4 (64 bit) 1 202.141.163.220
2 AlmaLinux 9.4 (64 bit) 1 202.141.163.221
3 AlmaLinux 9.4 (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 - 商业软件,有免费的个人和教育版。

· SSH Shell Client

· WSL for Windows - Windows 10 的优选之一,可以完整使用 Linux 终端环境。

2) 登陆示例

下面以 Putty 为例,说明如何登陆集群。

\1. 从官网 下载安装包安装 。

\2. 打开 Putty,在 Host Name那里填上 user@hostname, 端口 Port 一般为 22。填写好后可以点击下面的 save 保存 session。如有保存 Session, 可以选中 session,点击 load。如图所示。

putty-tutorial-1.png

\3. 若想使用密钥登陆,在 Connection -> SSH -> Auth 里,填写自己的 密钥路径,如图红框内所示。

putty-2

\4. 登陆集群。 点击下方的 Open。首次连接会提示服务器指纹,选择是或否。“是”将保存指纹,“否”则不保存。保存后登录同一台服务器将不再提示(如果提示,则表示服务器指纹发生了变化,可能是重装系统所致)。

SSH 连接服务器密钥指纹

图 3.1-4 忽略连接中可能的警告提示。

若没有选择密钥登陆,则会要求输入密码。

输入用户名密码登录服务器

1.2.4 密码修改

密码口令安全防范要求 (1)不要使用弱口令。应使用 4 种类型字符(大小写字母、数字、特殊字符)、至少 10 位的口令。且不要包含用户名、个人信息、常见单词、简单字母序列、数字序列或键盘按键序列。 (2)不要在所外公共信息系统(比如微信、QQ、各类网站或APP等)使用和站点账户一样的口令。 (3)定期修改口令,建议一年修改一次。 (4)不得将账号口令借给他人使用

在登陆节点上登陆后执行kpasswd命令以修改密码。

1.3 作业运行提交查看

集群使用HTCondor作为作业调度系统,HTCondor支持高通量计算(High Throughput Computing), 具有快速吞吐计算任务的特点,适合当前计算环境。 目前集群资源如下:

资源类型 资源数量 备注
CPU 约2000核
GPU 32块GPU卡 4台节点,单节点8块卡

队列及时长信息如下:

组 quota default quota default 时长(小时) mid quota mid 时长(小时) long quota long 时长(小时)
ATLAS 100 70 40 20 40 10 336
BESIII 400 300 40 50 40 50 336
BELLE 50 35 40 10 40 5 336
CMS 100 70 40 20 40 10 336
HIC 100 70 40 20 40 10 336
JLAB 50 35 40 10 40 5 336
NAPE 50 35 40 10 40 5 336
STCF 460 360 40 50 40 50 336

其余组的quota和作业时长参考JLAB;此外GPU节点的作业时长为30天。

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:
# do not change
universe = vanilla

# set the job script
executable = job.sh

# set output and error file name
output = job.sh.out.$(Cluster).$(Process)
error = job.sh.err.$(Cluster).$(Process)

# set the resource needs
# set the number of cpu core
#request_cpus = 2
# set the number of gpu card
#request_gpus = 2
# set the size of memory, unit is MB
#request_memory = 4000

# set experiment, group, walltime
+HepJob_Experiment = "ATLAS"
+HepJob_RealGroup = "ATLAS"
# if not use test or short walltime,
# keep it same with HepJob_RealGroup
+HepJob_VirtualGroup = "ATLAS"
# walltime need to select from 'default' or 'long'
+HepJob_Walltime = "default"
# combine the attributes above
accounting_group = ATLAS.ATLAS.default
#accounting_group = ATLAS.ATLAS.long

# select from AlmaLinux9 or CentOS7
+HepJob_RequestOS = "AlmaLinux9"

# do not change
+HepJob_SiteName = "ustc"

# 'True' means allow to propagate environments
getenv = True

# do not change
queue

其中,universe属性没有特别需要,不必修改;executable属性为作业脚本路径;output属性为标准输出文件,error属性为标准错误文件;最后一行以queue结尾,无特别需要,不必修改。 注意, 集群支持2种时长的作业,short作业时长限制为40小时,long作业时长限制为30天(long作业支持的资源数量有限),在提交作业时必须要指定属性accounting_group,以指定所需的队列。

涉及到队列或排队时长的内容为,需根据实际情况调整:

+HepJob_RealGroup = "ATLAS"
+HepJob_VirtualGroup = "ATLAS"
+HepJob_Walltime = "default"
accounting_group = ATLAS.ATLAS.default
  • 运行命令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 HepJob作业工具

使用HepJob工具提交作业,无需准备job discription文件。

1.3.5 其它

详细HTCondor使用说明,参考:

https://htcondor.readthedocs.io/en/stable/users-manual/index.html

1.4 容器使用

Apptainer是目前在高性能计算平台上被大量应用的轻量虚拟化容器技术,能够提供操作系统级的虚拟化。 Hep_container是基于Apptainer容器管理命令开发的适用于高能所计算集群的容器客户端工具,满足用户使用多种操作系统版本及环境的需求。 说明:本文涉及的命令均需要在登陆节点上运行,所用命令在以下目录,建议将下面目录加入用户个人环境变量 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 实验数据 所有节点 639TB
/ustcfs3 实验数据 所有节点 2.0P

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软件卷概况

results matching ""

    No results matching ""