教程:(搬运)课题组集群使用

准备工作

使用集群做计算之前,需要在办公电脑上安装SSH客户端(连接服务器,执行shell命令)、SFTP客户端(连接服务器,上传/下载文件)。

操作系统 命令终端 上传/下载
Putty 免费 Winscp 免费
Windows PowerShell win10自带 PowerShell win10自带
xshell 教育版免费 xshell - xftp 教育版免费
Linux Shell终端,使用ssh登录 Shell终端,使用scp命令

Linux指令

目录文件处理

命令 说明 备注
- 建立目录 示例:mkdir -p test
用法:mkdir [option] dirctory
mkdir tmp 在当前目录下建立子目录tmp
mkdir mkdir /opt/tmp 在/opt下创建子目录tmp
mkdir /opt/tmp/sub -p参数用于创建多级目录。若/opt/tmp目录不存在,无参数-p则指令报错
mkdir -p /opt/tmp/sub
- 列出目录下内容 -l 列表显示,-a 显示所有文件,包括隐藏文件;-t 按时间排序,从新到旧;-r 逆序排列
ls 用法:ls [option] dirctory
ls -lrt 按照时间排序,从后往前列表显示
ls -al test 列表显示test目录下所有文件
- 显示当前工作目录
pwd 用法:pwd
- 切换工作目录 / 根目录,目录起点,含系统目录usr、var、home、opt等
用法:cd dirctory $HOME 主目录,用户家目录,默认/home/username
cd test账户,家目录为/home/test,切换回家目录的几种方法
cd ~
cd cd $HOME
cd /home/test
cd - 回到前一个目录
- 复制(重命名)文件或目录 -r 递归复制,复制目录以及包含的子目录文件
用法:cp [option] source dest -a 递归复制,尽可能保持文件结构和属性(比如软链接)
cp cp file1 /tmp/ 复制file1到目录/tmp下
cp file1 /tmp/file2 复制file1到目录/tmp下,并重命名为file2
cp -r dir1 /tmp/ 复制dir1到目录/tmp下,须加参数-r
- cp -r dir1 /tmp/dir2 复制dir1到目录/tmp下,并重命名为dir2
移动(重命名)文件或目录 src,源文件或目录;dst,目标文件或目录
用法:mv [option] src dst src为目录,则dst必须为目录
mv mv dir1 /tmp/dir2 /tmp/dir2存在,则移动dir1到/tmp/dir2;不存在,则移动dir1到/tmp下并重命名为dir2
mv file1 /tmp 移动文件file1到目录/tmp下
mv file1 /tmp/file2 /tmp/file2存在,则移动file1到/tmp下并覆盖file2;不存在,则移动file1到/tmp下并重命名为file2
- 删除文件或目录 -f 强制删除;-r 删除目录以及目录内所有内容
rm 用法:rm [option] …file…
- rm /tmp/test.log 删除/tmp下test.log

文本处理

命令 说明 备注
显示或拼接文件内容 输出文件内容并打印到终端
cat 用法:cat [option] file…
cat -n file1 file2 显示file1、file2内容,并显示行号
- 查看文件内容,一页暂停,空格继续,q退出 相较于cat,分页显示
more 用法:more [option] file…
more /tmp/test.log 查看test.log内容
head head filepath
head -n 20 filepath
tail filepath
tail tail -n 20 filepath
tail -f filepath

系统管理

命令 说明 备注
- 进程查看命令
ps 用法:ps [option] 查看系统当前运行程序,可获取进程ID、用户、具体程序等
- ps aux 查看a所有用户、x执行程序、并显示u用户信息
- 删除运行的作业或者程序
kill 用法:kill [option] pid -l 查看信号列表,比如:9) SIGKILL
- kill -9 1234 给进程号为1234的程序发送停止运行信号,停止运行
- 查看目录或文件所占空间大小
du 用法:du [option] [file]…
- du -h /tmp 查看/tmp目录大小,并以K、M、G等显示

服务器作业管理指令

提交作业

qsub 作业脚本 
如:qsub test.pbs

使用submit-g16.sh脚本提交任务:
qsub -N jobname.gjf submit-g16.sh

使用qg16脚本提交任务:
qg16 jobname.gjf
注意:下列脚本对应不同cpu数队列,脚本和输入文件均需tiaoz
qg16用于提交任务到16CPU队列(nprocshared=16)
qg1612用于提交任务到12CPU队列(nprocshared=12)。

以下为脚本内容和解释:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
##指定SHELL类型
#PBS -S /bin/sh

##指定作业名称
#PBS -N JobName

##标准输出到文件stdout
#PBS -o stdout

##错误输出到文件stderr
#PBS -e stderr

##指定作业优先级
#PBS -p 0

##指定作业队列,不指定使用默认队列
#PBS -q batch

##指定所用节点数nodes:每个节点处理器数ppn:指定节点属性(可选)
#PBS -l nodes=1:ppn=16

##指定任务运行最大时间
#PBS -l walltime=10000:00:00

##进入工作目录
cd $PBS_O_WORKDIR

# 设置应用程序,环境变量(g09d01)
source /opt/local/g09d01/g09/setenv.sh

##临时文件写入计算节点/data/tmp
export GAUSS_SCRDIR=/data/tmp

##获取参数
nproc=$(wc -l < $PBS_NODEFILE)
env > env

##执行应用程序
##输入文件gjf须设置%nproc=nodes*ppn,比如%nproc=16
##使用*匹配任意名称gjf文件,确保计算目录只有一个输入文件
g09 *.gjf

if [ -f *.chk ]; then
$g09root/g09/formchk *.chk
fi

查看作业

1
2
3
4
5
6
7
8
9
10
11
12
# 查看作业,左侧第一列为作业ID
qstat

# 查看指定作业
qstat JOBID

# 查看指定作业,详细信息
qstat -f JOBID
# 状态说明:Q 排队、R 运行、C 完成

# 查看所有用户的作业(排队情况)
showq

删除作业

1
2
3
# 停止&删除任务
qdel JOBID
qdel JOBID1 JOBID2 ...

查看节点

1
2
3
4
5
6
7
# 查看作业系统节点信息及状态
pbsnodes 或者qnodes

# 状态介绍
# free,节点空闲,可以提交任务;
# down,节点不能提交任务(如果不是管理员设置,则该节点网络服务不正常);
# job-exclusive,节点已满

新建账户/节点磁盘写满时删除临时文件(略)
服务器配置(略)