12.9 HEPS¶
12.9.1 概况¶
| 资源类型 | 资源量 | 说明 |
|---|---|---|
| 登录节点 | ||
| HTCondor | ||
| Slurm | ||
| home目录 | ||
| 工作目录 |
12.9.2 新用户¶
-
申请计算集群账号
请参考 4.1 账号申请,得到 HEPS 实验负责人同意后,用户可获得 AFS 账号。
-
计算环境初始化
初次登录后在终端输入如下命令完成初始化:
12.9.3 计算资源¶
HEPS 实验的计算资源列表如下:
| 节点IP | 每个节点逻辑CPU核数 | 节点类型 | 任务调度系统 | 其他说明 |
|---|---|---|---|---|
| accap002.ihep.ac.cn | 28 | 登录节点 | — | 无 |
| accap001.ihep.ac.cn ~ accap009.ihep.ac.cn | 56 | 计算节点 | SLURM | accap002 除外 |
| accap010.ihep.ac.cn ~ accap015.ihep.ac.cn | 72 | 计算节点 | SLURM | |
| accap016.ihep.ac.cn ~ accap017.ihep.ac.cn | 88 | 计算节点 | SLURM | |
| accap019.ihep.ac.cn ~ accap053.ihep.ac.cn | 36 | 计算节点 | SLURM | 不能通过 ssh 登录 |
注意
经过 2025 年暑期的系统升级,所有计算服务器均已升级到 ALMA-9 系统。目前需要进行的额外设置包括:
-
重新设置登录设置文件
然后退出登录,再次登录服务器完成设置。
-
通过 VNC 访问 accap002,需要在登录后关闭屏保,即在 Applications → System Tools → Settings → Power 中勾选 Blank Screen Never。
12.9.4 存储目录¶
HEPS 实验用户可以使用的存储目录列表如下:
| 磁盘名称 | 空间限额/文件数限额 | 查看使用份额的命令 |
|---|---|---|
| /afs/ihep.ac.cn/users/a-z/username | 500MB/none | fs listquota /afs/ihep.ac.cn/users/a-z/username |
| /workfs2/heps/username 1 | 5GB/5万 | lfs quota -u username /workfs2 |
| /scratchfs/heps/username 2 | 500GB/none(数据只保存2周) | lfs quota -u username /scratchfs |
| /sharefs/heps/user/username | 3TB/none | lfs quota -u username /sharefs |
关于不同存储目录的使用有如下建议:
- /afs 目录下仅保留部分重要的个人设置文件,若在服务器上无法执行写操作,先排查是否由于 /afs 个人目录超过空间或文件数限额;
- /workfs2 目录可供在登录节点上读写文件,但在计算节点上提交的 SLURM 计算任务无法在 /workfs2 下新建和修改文件;
- /sharefs 目录下可保存重要计算结果和数据,登录节点和计算节点均可读写;
- /scratchfs 目录下可供暂存大文件和中间计算结果;
- 请将重要计算结果和数据及时备份到本地个人电脑。
12.9.5 计算程序及示例¶
HEPS 实验的各计算程序按不同类别分别安装在 /sharefs/heps/data/APcodes 和 /sharefs/heps/data/opt/ 目录下,各计算程序的详细列表在 /sharefs/heps/data/APcodes/README.md。
通过 SLURM 任务调度器运行并行程序¶
关于 SLURM 任务调度器的详细使用说明参见 9.1.2 Slurm 作业。需要通过 ssh 登录节点 lxlogin.ihep.ac.cn 或 accap002.ihep.ac.cn,然后才可以提交作业脚本及监测服务器和脚本运行状况。注意,提交作业的并行核数最好是 36 的整数倍。
- 作业脚本的示例如下(sbatch.sh):
#! /bin/bash
# Specify the partition name from which resources will be allocated
#SBATCH --partition=heps
# Specify which expriment group you belong to.
#SBATCH --account=heps
# Specify your job name, e.g.: "DA" is my job name
#SBATCH --job-name=DA
# Specify the queue to submit the job, two options are available, regular and advanced. "advanced" has a higher priority and is dedicated to urgent jobs.
#SBATCH --qos=regular
# Specify the output file path of your job
#SBATCH --output=slurm-%j.txt
# Specify how many cores you will need, e.g.: 36 is advisable for jobs submitted to accap019~accap052
#SBATCH --ntasks=36
### Below you can add any bash scripts
mpiexec -np 36 Pelegant parTrack2.ele
- 在登录节点上按如下方式提交任务:
-
在 hepsdebug 队列中进行程序调试:
为了满足在 Slurm 集群饱和时进行程序调试和运行时间较短的计算任务执行,将 accap053 单独划为 hepsdebug 队列,可以提交最多 ntasks 不超过 36、运行时间不超过 30 分钟的计算任务,超出 30 分钟则系统会自动清除该计算任务。通过 Slurm 调度器提交到 hepsdebug 队列时,只需在上述脚本中设置:
其他设置及提交任务的方式同前面介绍的方法相同。
-
查看全部 HEPS 服务器运行状态
-
查看 HEPS 队列情况,输出结果的第一列为 jobid
-
取消某个计算任务
运行正版 Matlab 程序¶
HEPS 实验购买的 Matlab 主程序安装在 /afs/ihep.ac.cn/soft/hepsap/matlab 目录下,运行 Matlab 程序需以 ssh 或 VNC 方式登录 accap002.ihep.ac.cn,并执行:
所安装的 Matlab 支持并行计算,最多调用 512 个并行核数。Matlab 并行任务不需要通过 SLURM 调度系统,而是直接在 Matlab 中申请并行核数并执行并行任务:
运行正版 Mathematica 程序¶
HEPS 实验购买的 Mathematica 主程序安装在 /sharefs/heps/data/opt/Mathematica/12.0 目录下,运行 Mathematica 程序可以以 ssh 或 VNC 方式登录 accap002.ihep.ac.cn,并执行:
所购买的 license 支持最多 17 个 Mathematica 主程序同时使用,支持最多 136 核的并行计算。下面介绍不同的并行计算调用方法,在 /sharefs/heps/data/opt/examples/MathematicaExamples/ 路径下可以找到相关的例子。
在 accap002 上执行单节点内并行计算任务¶
以 ssh 或 VNC 方式登录上述节点,在计算程序的并行部分开始之前,加上:
来启动并行进程。括号中的数字为并行进程数,需不大于该节点当前可以使用的核数。
利用 SLURM 任务调度系统执行跨节点并行计算任务¶
需登录 accap002.ihep.ac.cn,通过 SLURM 任务调度系统来向计算节点提交计算任务。
利用 SLURM 任务调度系统执行 Mathematica 计算任务有两种方法。如 Mathematica 程序不需要交互,则可以将其保存为 Wolfram Language Script 格式,可以通过命令行方式执行。对于这种情况,可以参考前面介绍的方法编辑 sbatch.sh,在完成 SBATCH 相关设置之后,加一行执行 Mathematica 脚本的语句 math -script test.wls。然后可以通过 sbatch sbatch.sh 来向 SLURM 调度器提交作业。如果 Mathematica 程序需要交互,则可以在终端执行下面的命令,来获取并行计算资源,之后再从 accap002.ihep.ac.cn 上打开 Mathematica 并执行并行计算任务。
上述命令中 ntasks 为并行计算所需的核数,-t 之后为预计完成计算所需的时间。
在 Mathematica 程序中第一个并行计算命令(如 Parallelize)之前加入下面的代码:
(* First obtain from SLURM the computing nodes and the number of cores on each nodes for this parallel computation*)
(* List of computing nodes allocated for this parallel computation *)
nodes = ReadList["!scontrol show hostname $SLURM_NODELIST", String];
(* List of number of cores on each computing node allocated for this parallel computation *)
tpn = Environment["SLURM_TASKS_PER_NODE"];
tpnlist = If[ StringMatchQ[#, RegularExpression[".*\\(x.*\\)"]],
Table[ StringTrim[#, RegularExpression["\\(.*"]],
{i, ToExpression[ StringTrim[StringTrim[#, RegularExpression[".*\\(x"]], ")"]]}
],
#]& /@ StringSplit[tpn, ","] // Flatten // ToExpression;
hosts = AssociationThread[nodes -> tpnlist];
Print["The association of nodes and counts are ", hosts, "\n"];
(* Set up the remote kernels for the parallel computation *)
(* Password-less SSH using public-private key pairs must be set up as an prerequisite *)
Needs["SubKernels`RemoteKernels`"];
$RemoteCommand =
"ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -x \
-f -l `3` `1` /sharefs/heps/data/opt/Mathematica/12.0/bin/wolfram \
-wstp -linkmode Connect `4` -linkname '`2`' -subkernel -noinit \
-nopaclet ";
Map[If[hosts[#] > 0, LaunchKernels[RemoteMachine[#, hosts[#]]]] &,
Keys[hosts]];
(* Test if the Remote Kernels are successfully launched*)
KernelIDList = ParallelEvaluate[$KernelID];
MachineNameList = ParallelEvaluate[$MachineName];
Print["The kernelIDs are ", KernelIDList];
Print["The computing nodes include ", DeleteDuplicates[MachineNameList],
", the number of parallel processes allocated is", Length[MachineNameList], "\n"];
12.9.6 常见问题¶
/afs 个人目录无法写文件¶
-
用户需要每隔 10 个小时重新获取 token,来获得在 /afs 个人目录下的写权限,可以执行如下命令:
一种简单的处理办法是登录到服务器之后,利用 crontab 将上述命令设置为定时执行任务:
注意
请不要在脚本、crontab 或命令行中写入明文密码。如需无人值守的定时认证,请联系计算中心确认安全的凭据方式。
-
/afs 个人目录已满,可以执行如下命令来查看使用份额:
第二条命令可以查看个人目录下哪些文件占用了大量空间。需要特别注意的是,如果经常使用 MATLAB 程序,需要经常执行如下命令来清除缓存:
从 Linux 主机无法通过 ssh 登录服务器¶
-
Host key verification failed
比如通过 ssh 登录 accap002 为例,需要在 ~/.ssh/known_hosts 中找到并删除包含 accap002 的各行。
accap002 服务器上 MATLAB 中画图不能正确显示¶
可以在终端用 matlab -softwareopengl 命令打开 Matlab,画图能够正常显示。
常见问题(FAQ)¶
见常见问题。
有问题?输入后跳转到对话页继续交流