一、二次验证登录设置:
系统使用ssh/sftp方式登录,在开通账号后,除普通账号/密码外,还需要设置二次验证登录,请参考:
二次验证码设置方式.pdf。
二、Module软件环境变量管理:
各系统均使用module工具进行软件环境变量的管理,以下以瀚海25系统上使用作为参考举例:
使用module命令对各使用软件的环境变量进行加载,请根据需要自行选择需要加载的内容,建议使用各软件的最新版本。
module命令常用参数举例介绍:
2.1、查看可用环境变量:module avail [软件名]
例:查看所有可用环境变量:module avail
2.2、加载需要的环境变量:
例:加载nvhpc/22.7版本编译器,并查看加载后的情况:
[scc@hanhai25-01 ~]$ module load nvhpc/22.7
[scc@hanhai25-01 ~]$ module list
Currently Loaded Modulefiles:
1) nvhpc/22.7
[scc@hanhai25-01 ~]$ which mpirun
/opt/hpc_sdk/2022_227/Linux_x86_64/22.7/comm_libs/mpi/bin/mpirun
以上显示加载成功。
其他软件的环境变量类似操作,根据需要加载对应版本软件
2.3、设置环境变量长期有效
可将加载命令放入个人帐号下的~/.bashrc文件中,以免去每次登录都需要执行加载命令。
编辑~/.bashrc文件,将加载命令写入其中,保存退出后,执行命令source ~/.bashrc使设置生效,即可使用加载的软件。
2.4、卸载已加载的环境变量:
例:[scc@hanhai25-01 ~]$ module list
Currently Loaded Modulefiles:
1) nvhpc/22.7
[scc@hanhai25-01 ~]$ module unload nvhpc/22.7
[scc@hanhai25-01 ~]$ module list
No Modulefiles Currently Loaded.
2.5、加载文件冲突:
加载同一种软件的多个版本可能会遇到冲突的错误提示,请先把前一个版本的卸载掉,之后再加载需要的文件。
若完全卸载所有的已加载环境变量,可使用module purge命令。
2.6、其他:
查看module命令其他参数详细介绍: man module
查看加载的环境变量文件内容: module show [软件名]
例:module show nvhpc/22.7
2.7、计算节点自动加载module问题
可以在作业脚本的开始加上 . /etc/profile
三、Slurm作业调度系统:
3.1、slurm常用命令说明:
sinfo:查看节点及队列信息
squeue:查看队列信息
sbatch:提交批处理作业,非交互式作业用户请使用此命令提交作业脚本
srun:交互式提交并行作业,先提交作业命令,后分配到节点,然后交互式操作
salloc:此命令禁止使用。分配式提交作业,先申请到节点资源,再交互式操作程序命令。
scancel:终止作业
sacct: 查看历史作业信息
scontrol:查看队列、节点及作业详细信息
scontrol show jobs:查看作业详细信息
scontrol show nodes:查看节点详细信息
scontrol update jobid=JOBID <TAB><TAB>,输入作业号之后,按2次tab按键,查看可以修改的作业参数。只能操作排队中的作业
scontrol show partition:查看队列详细信息
sacctmgr list qos:查看QOS详细信息
sload:查看节点负载等信息
speek:查看作业输出
jload:查看作业号对应的节点负载等信息
各命令的详细使用方法介绍,请使用命令例如man sinfo等查看
3.2、提交作业命令的常用参数介绍:
slurm系统使用脚本文件的方式提交作业,以下以your_job_command软件的脚本文件job_example.slurm为例介绍主要设置参数,实际计算时请根据需要自行修改设置。
以下为vasp.slurm的脚本文件里内容:
#!/bin/bash
#SBATCH -J job-test
#SBATCH -o %j.out
#SBATCH -e %j.err
#SBATCH -p CPU-256C768GB
#SBATCH -N 1
#SBATCH -n 256
#SBATCH --time=5-00:00:00
#SBATCH --qos=qos_cpu-256c768gb
cd $SLURM_SUBMIT_DIR
mpirun your_job_command
使用命令sbatch job_example.slurm提交作业。
参数说明:
-J 指定作业名字
-o 指定作业标准输出文件,%j对应作业号,作业结束时生成 作业号.out 文件,文件生成在作业提交的目录下。
-e 指定作业标准错误输出文件,作业异常退出时生成 作业号.err 文件,请仔细查看错误信息提示。
-p 指定作业提交的队列,根据实际需要选择。
-N 指定作业申请节点数,根据实际需要设定。
-n 指定作业申请进程数即核数,根据实际需要设定。
--gres= 指定需要的资源,例如需要一个gpu: --gres=gpu:2,如作业是跨节点的,则表示每个节点申请2个gpu
--time= 指定作业运行的最长时间.以上举例中为2天,后边分别代表小时:分钟:秒
--qos= 指定作业使用的qos,各分区不一样。
cd $SLURM_SUBMIT_DIR 切换到作业提交的目录,保障在计算节点上时,环境变量顺利找到相应的作业文件。
mpirun your_job_command 使用mpirun执行your_job_command命令。请替换为自己实际需要的执行程序。
更多参数请man sbatch查看,其他举例参数:
$SLURM_JOB_NODELIST 作业运行时分配的节点名
$SLURM_JOB_CPUS_PER_NODE 作业每个节点使用的cpu核数
$SLURM_JOB_NUM_NODES 作业分配的节点数量
$SLURM_NPROCS 要加载的进程数
--ntasks-per-node= 每节点启动的进程数
--exclusive 申请独占某个节点使用
--get-user-env 获取当前的环境变量
-D, --chdir=<directory> 指定工作目录
-w 指定作业运行时需要有的节点,例如限定作业至少运行在anode001节点上: -w anode001
四、常用软件使用举例
4.1、Gaussian软件使用举例说明:
说明:
1.超算中心购买的高斯软件版本为: G09 D.01、G16 C.01(支持v100GPU)、C.02(支持a100 GPU)安装在/opt/gaussian目录下,该软件具有全校正版版权。g16 windows版本、GaussView6+GMMX软件,下载地址http://i.ustc.edu.cn/->正版软件->高斯。
2.用户使用前需检查自己帐号是否拥有使用权限,没有权限的请向中心提出申请。仅限科大校内师生用户可以申请使用。
3. slurm设置参数-n的数值要与高斯计算输入文件里设置使用cpu核数(%nproc或%CPU)的参数数值保持一致,否则申请使用核数与计算使用核数不一致,实际开启进程数为输入文件里设置使用cpu核数.
4.仅可单节点内并行计算,不支持跨节点并行计算。
5.权限查看命令:id 账号名,例如 id pirate
uid=10002(pirate) gid=10001(nic) 组=10001(nic),10002(gaussian)
用户属组里有gaussian则有权限使用,没有则没权限。校内师生可向中心申请增加权限。
6.举例:脚本文件gaussian.slurm内容如下
#!/bin/sh
#SBATCH -J jobname
#SBATCH -o %j.log
#SBATCH -e %j.err
#SBATCH -N 1 -n 64
#SBATCH -p CPU-256C768GB
#SBATCH --qos=qos_cpu-256c768gb
echo Time is `date`
echo Directory is $PWD
echo This job runs on the following nodes:
echo $SLURM_JOB_NODELIST
echo This job has allocated $SLURM_JOB_CPUS_PER_NODE cpu cores
module load gaussian/g16.c02
g16 123456.gjf
提交作业命令:sbatch gaussian.slurm
7.高斯作业使用GPU的设置:
当使用GPUs时,每个GPU进程必须由一个CPU进程控制。该CPU应该在物理架构上更靠近所控制的GPU,并且GPUs不能共享CPUs控制。另外需要注意,用于控制GPU的CPUs不能再用于做进程计算核心。
%GPUCPU命令设置:用于计算的GPUs及用于控制的CPUs可通过Link 0部分使用%GPUCPU命令指定。此命令有一个参数:%GPUCPU=gpu-list=control-cpus,其中gpu-list为GPU列表(用逗号隔开),也可以是数值范围(例如,0-4,6);control-cpus为相似格式的控制CPU列表,这两列的内容是GPU及控制CPU。例如:
%CPU=0-39 %nproc=40
%GPUCPU=0-1=0-1 %GPUCPU=0,1=3,6
注意:control-cpus必须在%CPU的参数范围内,且实际计算时并不参与计算。
第一种设置方法:向服务器申请0-39号共40个CPU核,0-1号共2个GPU核心,以及控制GPU核心上进程的0-1号共2个CPU核。参数中使用核心皆连续,此种%CPU设置方法优先使用,因计算是程序进程与使用核绑定,减少缓存损失,效率较高;
第二种设置方法:向服务器申请40个CPU核,0,1号共2个GPU核心,以及控制GPU核心上进程的3,6号共2个CPU核。参数中使用核心不连续,此种%nproc的设置方法也可以使用,但效率略差于第一种方法。
4.2 vasp软件使用举例说明:
说明:
以下为vasp.slurm的脚本文件里内容:
#!/bin/bash
#SBATCH -J vasp-job
#SBATCH -o %j.out
#SBATCH -e %j.err
#SBATCH -p CPU-256C768GB
#SBATCH -N 2
#SBATCH -n 512
#SBATCH --qos=qos_cpu-256c768gb
cd $SLURM_SUBMIT_DIR
module load vasp/6.4.1/oneapi2025.2_mkl_mpi
mpirun vasp_std
使用命令sbatch vasp.slurm提交作业,申请2个节点共512的CPU核进程并行计算,请根据实际需要加载合适的环境变量及修改参数。
4.3、matlab软件使用举例说明:
说明:
超算中心购买了matlab计算软件及其工具箱的正版版权,全校在校的师生均可使用,非在校师生及校外人员不可使用。超算中心服务器上matlab的安装路径为/opt/MATLAB,用户使用前需使用module加载设置环境变量:
[scc@hanhai25-01 ~]$ module avail matlab
-------------------- /opt/MODULES/app --------------
matlab/2022a
[scc@hanhai25-01 ~]$ module load matlab/2022a
[scc@hanhai25-01 ~]$ module list
Currently Loaded Modulefiles:
1) matlab/2022a
[scc@hanhai25-01 ~]$ which matlab
/opt/MATLAB/R2022a/bin/matlab
2) 采用matlab -r inputfile 方式提交时,输入文件inputfile.m需要去除.m的文件扩展名。
说明:以下为matlab.slurm的脚本文件里内容:
#!/bin/bash
#SBATCH -J matlab-job
#SBATCH -o %j.out
#SBATCH -e %j.err
#SBATCH -p CPU-256C768GB
#SBATCH -N 1
#SBATCH -n 256
#SBATCH --qos=qos_cpu-256c768gb
cd $SLURM_SUBMIT_DIR
module load matlab/2022a
matlab -r inputfile > result
使用命令sbatch matlab.slurm提交作业,申请1个节点共40的CPU核进程并行计算,请根据实际需要加载合适的环境变量及修改参数。
