欢迎来到科学与工程计算中心


系统禁止事项:

  1. 登陆节点上运行作业
  2. 持续创建大量文件(十万以上)
  3. 未告知管理员的文件系统压力测试

目录

使用手册

点击下载(太乙使用手册)

点击下载(启明使用手册)

VPN申请&问题,请联系信息中心(its@sustech.edu.cn)

登陆IP

登陆IP地址

节点名称 节点地址
太乙登陆IP 172.18.6.175
启明登陆IP 172.18.6.67

提交脚本范例


注意:作业脚本中的ptile必须是数字,hname必须是节点名称,不能是shell变量


范例1-"太乙"-vasp
注意:建议采用2018.4版本


#!/bin/sh                          
#BSUB -J N_F                        ##job name
#BSUB -q short                     ##queue name
#BSUB -n 80                        ##number of total cores     
#BSUB -R "span[ptile=40]"          ##40 cores per node
#BSUB -W 12:00                     ##walltime in hh:mm 
#BSUB -R "select[hname!='r13n18']" ##exclusive r13n18
#BSUB -e err.log                   ##error log
#BSUB -o H.log                     ##output log
module load intel/2018.4 mpi/intel/2018.4 vasp/5.4.4
mpirun vasp_std &>log

( 自带vasp )


#!/bin/sh                          
#BSUB -J N_F                        ##job name
#BSUB -q short                     ##queue name
#BSUB -n 80                        ##number of total cores     
#BSUB -R "span[ptile=40]"          ##40 cores per node
#BSUB -W 12:00                     ##walltime in hh:mm 
#BSUB -R "select[hname!='r13n18']" ##exclusive r13n18
#BSUB -e err.log                   ##error log
#BSUB -o H.log                     ##output log
module load intel/2018.4 mpi/intel/2018.4 vasp/5.4.4
mpirun /work/xxx-xxx/vasp.5.4.4/vasp.5.4.4/bin/vasp_std &>log

(混合模式)


#!/bin/bash
#BSUB -q short             ##queue name
#BSUB -n 120               ##number of total cores 
#BSUB -e %J.err            ##error log
#BSUB -R “hname!=r13n17“   ##exclusive node
#BSUB -R "hname!=r13n09"
##BSUB -o %J.out           ##output log
#BSUB -W 20:00             ##walltime in hh:mm
#BSUB -R “span[ptile=40]”  ##40 cores per node
hostfile=`echo $LSB_DJOB_HOSTFILE`
NP=`cat $hostfile | wc -l`
cd $LS_SUBCWD

#-------------intelmpi+ifort------------------------------------------
source /share/intel/2017u8/compilers_and_libraries/linux/bin/compilervars.sh -arch intel64 -platform linux
source /share/intel/2017u8/impi/2017.4.262/intel64/bin/mpivars.sh

mpiexec.hydra -machinefile $LSB_DJOB_HOSTFILE -np $NP  /work/xxx-xxx/bin/VASP/5.4.1/vasp_gam_intel2017 &> log

范例2-"太乙"-自编mpi代码


#!/bin/bash
#BSUB -J test
#BSUB -q short
#BSUB -n 320
#BSUB -e %J.err
#BSUB -o %J.out
#BSUB -R "span[ptile=40]"
#Noo BSUB -R "select[hname!='r03n43']"
#Noo BSUB -R "select[hname!='r03n55']"
#Noo BSUB -R "select[hname!='r03n64']"

module load fftw/2.1.5
module load intel/2018.4
module load mpi/intel/2018.4

cd $LS_SUBCWD
echo "processes will start at:"
date

mpirun -machinefile $LSB_DJOB_HOSTFILE -np 320  ./main > $LSB_JOBID.log 2>&1

echo "processes end at:"
date

范例3-"启明"-vasp


#!/bin/bash
#PBS -N vasp                   #Set the job name
#PBS -l nodes=4:ppn=18         #Set the number of nodes and cores used of each node
#PBS -l walltime=72:00:00      #Specify the walltime needed
#PBS -q fat                    #Set the queue name


source /opt/intel/composer_xe_2015/bin/compilervars.sh intel64
source /opt/intel/mkl/bin/intel64/mklvars_intel64.sh
source /opt/intel/impi/5.0.2.044/bin64/mpivars.sh


date
cd $PBS_O_WORKDIR
npproce=`wc -l<$PBS_NODEFILE`
mpirun -genv I_MPI_DEVICE rdssm -machinefile $PBS_NODEFILE -n $npproce /opt/software/vasp/vasp-intel/vasp5.3/vasp.5.3/vasp
date

范例4-"启明"-自编mpi代码


#!/bin/bash
#PBS -N bulktest
#PBS -l nodes=14:ppn=24
#PBS -l walltime=24:00:00
#PBS -q cal-s
#PBS -V
#PBS -S  /bin/bash
#PBS -e mylog.err
#PBS -o mylog.out

source  /opt/intel/composer_xe_2015/bin/compilervars.sh intel64
source  /opt/intel/mkl/bin/intel64/mklvars_intel64.sh
source  /opt/intel/impi/5.0.2.044/bin64/mpivars.sh

NP=`cat $PBS_NODEFILE | wc -l`
#NN=`cat $PBS_NODEFILE | sort | uniq | tee /tmp/nodes.$$ | wc -l`
cat $PBS_NODEFILE > /tmp/nodefile.$$

date
cd $PBS_O_WORKDIR
mpirun -genv I_MPI_DEVICE rdssm  -machinefile /tmp/nodefile.$$  -n 320 ./main >& $PBS_JOBID.out
date

范例5-串行程序-启明


#!/bin/bash
#PBS -N test
#PBS -l nodes=1:ppn=1                ##only one core is emough
#PBS -l walltime=24:00:00
#PBS -q ser                          ##taiyi is ser queue
#PBS -V
#PBS -S  /bin/bash
#PBS -e mylog.err
#PBS -o mylog.out

 ./a.out >& $PBS_JOBID.out           ##run the command directory


范例6-openMP-太乙


#!/bin/bash
#BSUB -q short
#BSUB -n 40                                 ##number of total cores
#BSUB -e %J.err
#BSUB -o %J.out
#BSUB -R "span[ptile=40]"
hostfile=`echo $LSB_DJOB_HOSTFILE`
NP=`cat $hostfile | wc -l`
cd $LS_SUBCWD
export OMP_NUM_THREADS=80                 ##number of total task
module load intel/2018.4

./omp_exam_icc > log 2>&1                ##download:/share/user_guide/exam/omp_exam_icc

范例7-openMP+mpi-太乙


#!/bin/sh                          
#BSUB -J 2nodes2cores           ##job name
#BSUB -q debug                  ##queue name
#BSUB -n 4                      ##number of total cores 
#BSUB -R "span[ptile=2]"        ##2 cores per node
#BSUB -W 00:10                  ##walltime in hh:mm 
#BSUB -e %J.err.log             ##error log
#BSUB -o %J.output.log          ##output log
module purge
module load intel/2018.4 mpi/intel/2018.4
cat $LSB_DJOB_HOSTFILE|sort|uniq >hostlist
NP=2
export OMP_NUM_THREADS=2
mpiexec.hydra -machinefile hostlist -np $NP mpiOpenmp ##download:/share/user_guide/exam/mpiOpenmp

运行作业的基本步骤如下:


"太乙"-作业调度系统使用简介

"太乙"采用的作业调度平台式LSF 10.1。用户需要熟悉一些基本的Linux 命令行操作,特别是文件目录操作,并能熟练使用一种编辑器(vi 或emacs 等)。

"太乙"-提交作业的命令


bsub<test.lsf

test.lsf的写法可以参考 提交脚本范例

提交 LSF 任务,成功后会给出此任务的 JOBID

bjobs查看自己的所有运行任务情况;输入bjobs后,会列出当前用户正在运行的所有作业,最左边一列数字是每个作业的 JOBID,一些其他命令使用的时候需要先调用bjobs查看JOBID。

`bjobs –l`  查看所有运行任务的详细情况
`bjobs –l JOBID`  查看 JOBID 这个任务的详细情况
`bpeek –f JOBID`  跟踪查看某任务屏幕输出
`bkill JOBID`  终止某任务运行
`bkill JOBID1 JOBID2 JOBID3`  终止多个任务运行
`bqueues`  查看所有任务队列的状态
`bstop JOBID`  临时挂起某个计算作业,为其它计算腾出资源
`bresume JOBID`  恢复由bstop挂起的作业
`lshosts`  查看节点的信息
`bhosts`  查看节点的作业使用信息
`lsload`  查看节点的即时负载信息

作业结束后,会在计算目录下生成output.JOBID,此文件为程序输出内容。

"太乙"-任务监控

使用bjobs可以监控到以下参数

PEND-作业在队列中等待调度与分派
RUN-作业已经辈分派到节点机上,正在运行
DONE-作业已经正常结束
EXIT-作业已经结束,但可能是异常退出或者手动被终止
UNKWN-执行节点失去联系,从而使作业状态不确定

查看任务实时输出
bpeek 输出所有内容
bpeek -f JOBID 类似于tail -f
另外也可以通过重定向的方式将标准输出和标准错误重定向到指定的文件

如果任务有异常退出,可以查看计算目录文件下的output.JOBID来查看具体的原因。


"启明"-作业调度系统使用简介

启明PBS是一个批处理和计算机系统资源软件包,是国内外高性能计算机集群普遍采用的一种作业管理系统,具有易用性、可移植性、适配性和灵活性的优点

"启明"-提交作业的命令


qsub test.lsf

test.lsf的写法可以参考 提交脚本范例

"启明"-任务监控

使用qstat [-f][-a][-i] [-n][-s] [-R] [-Q][-q][-B][-u] +作业号

-f 列出指定作业的信息
-a 列出所有作业
-i 列出不在运行的作业
-n 列出分配给此作业的结点
-q 列出队列状态,并以alternative形式显示
–an 查询当前所有作业所在的执行节点

查看任务实时输出
直接查看$PBS_JOBID.out (脚本范例5,结果重定向到$PBS_JOBID.out)
更详细的内容,请查阅《启明用户手册》或者《PBS用户使用指南》


共性问题

共性问题是指""太乙"和"启明"共有的问题

怎么充值机时费

参考 收费通知

VPN登陆不了或者很卡

  1. 重新点击VPN登陆,第一次有可能因为没有获取到VPN的IP地址
  2. 确定本地网络是否正常
  3. VPN归口信息中心,可联系信息中心解决

怎么申请账号

填写申请表[下载]: 账户申请表,然后发邮件至hpc@sustech.edu.cn,如果不是pi(课题组长),需要将邮件抄送PI


"太乙"-常见问题

如何查询队列是否还有空闲?

bhosts hg_队列名,例如:bhosts hg_debug,可以查询队列debug对应节点的状态,如果STATUS为ok,RUN为0,那么这个节点是没有作业在运行,为空闲状态

节点使用的核数?

注意:为了节点使用效率更高,单节点上使用核数需为20或者40,作业的总核数需为20的整数倍。在提交脚本里面应加上参数:#BSUB -R "span[ptile=40]"或者#BSUB -R "span[ptile=20]"

作业默认跑到medium队列?

太乙上,提交作业使用 qsub test.lsf或者 bsub test.lsf都是错误的。这两种方式,都会把作业提交到默认队列medium.正确的方式是bsub < test.lsf

集群环境是否支持图形界面?

支持,严格来说这是Linux的程序支持,请使用Xmanager Enterprise客户端(确认您已购买,免费版本的Xshell不支持)或者MobaXterm进行操作,运行的可执行文件如果需要图形窗口会弹出窗口。

为什么"太乙"的short, medium等队列不能使用低于40核每节点?

为了避免多个用户之间使用同一节点,而造成相互争抢资源,导致用户作业受影响

如何判断我的作业是否正常运行了

  1. 建议作业间隔一段时间做一次输出
  2. lsload hosts查看节点状态,比如作业在r12n32, r01n21上运行,可执行lsload r12n32 r01n21查看节点状态, r15s 表示15秒内负载, ut 表示CPU使用率。

远程FTP连接不通是什么原因?

ping 所有FTP节点的IP地址,如果可以ping通但不能连接上FTP,请联系管理员。如果不能ping通ftp ip地址,请联系管理员。

用户如何修改密码?

进入登录节点后用户可以用passwd命令更改自己的初始密码。请用户同时保留好新旧密码以防变动。

作业提交要注意哪些问题?

太乙采用的集群调度系统为 LSF 8.0。先前熟悉其他调度系统(如pbs,slurm,SGE)的用户可能要更改作业递交的脚本以适应集群环境。
测试程序建议先在编译节点上试运行,以确保程序运行正常

为什么作业提交后作业状态显示为“PEND”?

作业提交后,可通过bjobs命令查询账号本身提交作业的情况。PEND意为已提交系统运行的作业正在等待资源,尚未进行运算。原因有如下几类:

(1)申请使用的CPU数超过了队列对应资源池剩余的CPU数目。如果还有节点空闲,该节点应该属于其它队列的资源池,可以换队列提交

(2)申请使用运行程序的队列资源负荷超过队列最大提供CPU数,没有足够的CPU供新作业使用,在其他作业运行结束后会根据队列策略对该队列所有PEND作业进行统一调度。

(3)用户在作业脚本中指定使用节点的名称。由于用户指定节点,导致LSF在有空闲节点时也无法运行该作业。通过这种方法提交作业的成功概率也很小,因为用户指定的这些节点只要有一个被使用,该作业就始终处于PEND状态。因此,建议不要使用指定节点的作业提交方式。

以上任何一种原因均会导致提交的作业处于PEND状态。详细原因可以通过bjobs -l JOBID 查看 PENDING REASONS

为什么我的作业无法Kill掉?

如果你想Kill掉正在计算的作业,需要使用bkill jobid ,如果执行该命令后,显示作业还在运行,你可以先停止作业bstop jobid,稍等片刻,再执行bkill jobid作业就显示已经被Kill掉了。如果很多次bkill操作后作业依旧不能杀掉,请联系hpc@sustech.edu.cn

作业运行完毕或者中断,系统输出或出错文件信息在哪?

系统输出的文档在您递交运算所在的文件夹里,一般为output.jobid的形式输出。
如果在作业脚本中有重定向输出到文件,请同时查看该文件和output文件。

作业异常退出怎么办?

如果您的作业在计算过程中异常退出,请在登录节点使用bjobs -l jobid (比如bjobs –l 1232343) 查看作业退出码

关于exit code参考LSF官方说明: LSF job exit codes

账号无法登录或是登录后找不到我的文件?

(1)欠费关闭

(2)确认VPN是否连接正常;

(3)登录节点异常,选择其他登录节点登录;

(4)因系统采用的是共享存储,有可能因登录节点的异常,导致共享存储没有挂上,你可以退出选择其他登录节点重新登录。

是否对作业运行时间、作业个数以及可以的CPU核数做了限制?

目前在账号的有效日期内,没有对作业的运行时间限制

我只有一个账号,但是需要不同的计算环境,比如需要同时使用不同的编译器、MPI,这种情况下怎么做

一般情况下用户将环境变量在用户目录下的.bashrc中定义,这样主要是为了方便用户使用。实际上LSF作业系统和.bashrc配置并无直接关联。
LSF作业系统通过读取用户执行bsub所在命令终端的环境变量,然后将环境变量传递到计算节点上。因此,如果用户的一个账号需要同时使用多种环境,比如要同时使用openmpi + intel,openmpi + pgi 两种运行环境,请不要设置.bashrc。先做好几个环境变量脚本,然后每次要编译或者提交作业前先source这些脚本,然后就可以编译程序或者通过bsub提交作业。

常用快捷键

编辑命令

Ctrl + a :移到命令行首
Ctrl + e :移到命令行尾
Ctrl + f :按字符前移(右向)
Ctrl + b :按字符后移(左向)
Alt + f :按单词前移(右向)
Alt + b :按单词后移(左向)
Ctrl + xx:在命令行首和光标之间移动
Ctrl + u :从光标处删除至命令行首
Ctrl + k :从光标处删除至命令行尾
Ctrl + w :从光标处删除至字首
Ctrl + / : undo 
Alt + d :从光标处删除至字尾
Ctrl + d :删除光标处的字符
Ctrl + h :删除光标前的字符
Ctrl + y :粘贴至光标后
Alt + c :从光标处更改为首字母大写的单词
Alt + u :从光标处更改为全部大写的单词
Alt + l :从光标处更改为全部小写的单词
Ctrl + t :交换光标处和之前的字符
Alt + t :交换光标处和之前的单词
Alt + Backspace:与 Ctrl + w 相同类似,分隔符有些差别 [感谢 rezilla 指正]

注意:Alt快捷键在xhell中默认不可用于shell

重新执行命令

Ctrl + r:逆向搜索命令历史
Ctrl + g:从历史搜索模式退出
Ctrl + p:历史中的上一条命令
Ctrl + n:历史中的下一条命令
Alt + .:使用上一条命令的最后一个参数

控制命令

Ctrl + l:清屏
Ctrl + o:执行当前命令,并选择上一条命令
Ctrl + s:阻止屏幕输出
Ctrl + q:允许屏幕输出
Ctrl + c:终止命令
Ctrl + z:挂起命令

复制粘贴
使用putty或者xshell时,复制和粘贴也可以在菜单栏内选择用鼠标选取作为复制,并用鼠标右键进行粘贴。可以在上面菜单栏选择 工具 - 选项
将选定的文本自动复制到剪贴板 选中

反馈与建议

如果您在使用中遇到问题,欢迎与我们联系,工作日收到您的邮件我们会在半小时响应。
- 邮箱:hpc@sustech.edu.cn


感谢阅读这份帮助文档。如发现文档中描述不准确,请邮件告诉我们。

System ChangeLog

change log : 2019.11.29

  1. 20191129创建文档

ver1.0

change log : 2020.09.28

  1. 20200928修改登录IP

ver1.01