天河二号作业调度系统简单使用
现将天河2号的作业调度系统的简单使用方法记录于此:
MPI
天河2号默认使用mpich-3.2.1(使用icc-14.0.2
编译),是天河2号自主实现的mpi版本,具有较高的效率。 # module 模块管理
1
2
3
4
5
6
7module avail # 查看可用的模块的列表。
module load [modulesfile] # 加载需要使用的modulefiles。
module load OpenFOAM/2.2.2 # 示例
module其它用法,可在help中查询
作业调度
天河二号使用的作业调度系统实际为slurm
,但是将srun
、sbatch
、squeue
等命令的前缀替换成了yh
,得到yhrun
、yhbatch
、yhqueue
等一系列命令。
## 基础 1
2
3
4
5
6
7
8yhi # yhinfo命令的简写,用于查看节点状态
其中PARTITION表示分区;NODES表示节点数;NODELIST为节点列表;STATE表示节点运行状态,
其中,idle表示节点处于空闲状态,allocated表示节点已经分配了一个或多个作业。
yhq # yhqueue命令的简写,用于查看作业运行情况
推荐使用“yhq -a”查看作业状态信息
其中JOBID 表示任务ID,Name表示任务名称,USER为用户,TIME为已运行时间,NODES表示占用节点数,NODELIST为任务运行的节点列表。
交互式提交作业
在shell窗口中执行yhrun
命令,主要命令格式如下:
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
30yhrun [options] program
-n, --ntasks=number # 指定要运行的任务数
-c, --cpus-per-task=ncpus # 每个任务需要ncpus 个处理器核
-N, --nodes=minnodes[-maxnodes] # 请求为作业至少分配minnodes(最大maxnodes)个节点。 (例如“-N 2-4”或“--nodes=2-4”)
如果没有指定-N,缺省行为是分配足够多的节点以满足-n和-c参数的需求
-p, --partition=partition name # 在指定分区中分配资源。如未指定,则由控制进程在系统默认分区中分配资源。
-w, --nodelist=node name list # 请求指定的节点名字列表。作业分配资源中将至少包含这些节点。
列表可以用逗号分隔的节点名或节点范围(如cn[1-5,7,...])指定,或者用文件名指定;如果参数中包含“/”字符,则会被当作文件名。
-x, --exclude=node name list # 不要将指定的节点分配给作业
-D, --workdir=directory # set working directory for batch script
-I, --immediate[=secs] # exit if resources not available in "secs"
-o, --output=out # location of stdout redirection
-J, --job-name=jobname # name of job
-l, --label # prepend task number to lines of stdout/err
-h, --help # 若需使用yhrun更多选项,可通过“yhrun –h”或“yhrun --help”查看。
# eg:
yhrun -n 4 -p bigdata hostname
yhrun -n 4 -w cn[7303-7306] -p bigdata hostname
yhrun -n 4 -N 4 -w cn[7303-7304] -p bigdata hostname
yhrun -n 4 -N 4 -x cn[7303-7304] -p bigdata hostname
节点资源抢占命令 yhalloc
该命令支持用户在提交作业前,抢占所需计算资源 1
yhalloc -N 1 -p bigdata
yhq
查看相应的jobID
为1051,节点为cn7314,然后ssh
到对应节点进行操作
取消自己的作业
使用yhcancel
命令 1
yhcancel jobid
批处理作业命令 yhbatch
在资源满足要求时,分配完计算节点之后,系统将在所分配的第一个计算节点(而不是登录节点)上加载执行用户的作业脚本。
1
2
3
4
5
6
7
8
9cat > mybash.sh
#!/bin/bash
yhrun -n 4 -N 4 -p bigdata hostname
chmou mybash.sh
yhbatch -N 4 -p bigdata ./mybash.sh yhbatch --help
命令查看。
如果不需要使用MPI的话,也可以不使用yhrun
单个节点上提交多个作业
因为天河2是独享作业,当一个节点上已经被分配出去之后,即便没有使用全部的核心,也无法继续提交作业。 所以,若想在一个节点上运行多个作业,必须同时提交上去,如下: 某用户有4个 a.out 需要运行,每个a.out最多只能高效运用6 个CPU 核,那么可以构建下面的任务脚本,在一个计算节点上同时运行多个作业:
1 | cat > job.sh |
然后通过yhbatch –N 1 job.sh
来一次提交计算任务,使所有小的计算任务都可以在一个节点同时进行计算。
如果不需要使用MPI的话,也可以不使用yhrun
。