FAQ
1.查看当前集群可用自动伸缩分区:
a.当集群处于运行状态时,FCC 界面显示了当前集群可用的分区并显示了不同计算节点的类型。
b.使用命令查看FCC集群可用分区
通过远程连接(SSH/VNC)访问集群,在终端中执行“sinfo”,输出内容如下。
其中“PARTITION”为该集群可用分区。带有星号“*”的分区名称表示默认分区。
第一列 PARTITION 是分区名称,每个分区开启的机器类型相同。
第二列 AVAIL 是队列可用情况,如果显示 up 则是可用状态;如果是 inact 则是不可用状态。
第三列 TIMELIMIT 是任务运行时间限制,默认是 infinite 没有限制。
第四列 NODES 是节点数。
第五列 STATE 是节点状态。
第六列 NODELIST 是节点列表。
2.Slurm如何调用任务
可以用sbatch/srun/salloc三种方式提交任务,具体使用方法参照章节"三种模式提交任务"。
以sbatch 命令为例 :
指定4 个进程提交hostname命令:编写脚本test.sh,内容如下:
#!/bin/bash
srun -n 4 hostname
2
然后在命令行执行sbatch -p p1-c1-2 test.sh 提交任务。
sbatch -p p1-c1-2 test.sh
脚本中的 #!/bin/bash 是 bash 脚本的固定格式。从脚本的 形式可以看出,提交脚本是一个 shell 脚本,因此常用的 shell 脚本语法都可以使用。sbatch -p p1-c1-2 test.sh 会从p1-c1-2分区开启2台机器,执行test.sh任务,任务结束后,如果机器闲置超过10分钟,程序会自动将这2台机器释放
3.如何进行自动伸缩
在指定分区提交任务时,会根据分区选择计算节点机型,根据任务请求的资源自动伸缩。
提交任务的方法参照章节"三种模式提交任务"。
以sbatch 命令为例:
指定4 个进程提交hostname命令:编写脚本test.sh,内容如下:
#!/bin/bash
srun -n 4 hostname
2
然后在命令行执行sbatch -p p1-c1-2 test.sh 提交任务。
sbatch -p p1-c1-2 test.sh
提交任务后,会自动从p1-c1-2分区开启2台机器,执行test.sh任务,任务结束后,如果机器闲置超过10分钟,程序会自动将这2台机器释放
4.查看作业信息
使用squeue 可以查看当前的任务运行状态,如果 squeue 没有任务信息,说明任务已退出并且退出的时间已经超出清理时间。
# squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
8 compute sleep root R 8-02:07:58 2 ip-10-10-2-[70,80]
2
3
其中JOBID 表示任务ID,Name表示任务名称,USER为用户,TIME为已运行时间,NODES表示占用节点数,NODELIST为任务运行的节点列表。
squeue 的 常用命令选项:
squeue #查看运行中的作业列表
squeue -l #查看列表细节信息
squeue -j job-id #查看运行中作业信息
squeue -u username #查看user所有运行中的作业
squeue -p p1-c1-4 #查看提交到 p1-c1-4 队列的任务信息
squeue -w p1-c1-4-1 #查看使用到 p1-c1-4 节点的任务信息
2
3
4
5
6
其他选项可通过squeue --help命令查看
5.取消Slurm任务
scancel 可以取消正在运行或排队的任务。
scancel 的一些常用命令示例:
scancel 11 #取消任务号为 11 的任务
scancel -n test-001 #取消任务名为 test-001 的任务
scancel -p p1-c1-2 #取消提交到 p1-c1-2 队列的任务
scancel -t PENDING #取消正在排队状态的任务
scancel -w p1-c1-2-1 #取消运行在 p1-c1-2-1节点上的任务
2
3
4
5
scancel 的其他参数选项,可通过 scancel --help 查看。
6.启动计算节点
在指定分区提交任务时,会根据分区选择计算节点机型,根据任务请求的资源自动伸缩。
提交任务的方法参照章节"三种模式提交任务"。
以启动通用型64C128G的机器为例
#!/bin/bash
#SBATCH -J test
#SBATCH -p b1-c1-64
#SBATCH -N 3
srun hostname
2
3
4
5
7.机器何时关机?
计算节点在没有任务运行超过十分钟后会自动关闭,判定是否有任务运行的标准为slurm queue中有任务占用该节点。通过 sinfo 和 squeue 可以查看节点和任务情况。例如:
$ sinfo
PARTITION AVAIL TIMELIMIT NODES STATE NODELIST
compute* up infinite 1 mix compute1
compute* up infinite 1 idle compute2
$ squeue
JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON)
512 compute srun jessieli R 37:19 1 compute1
514 compute srun jessieli R 20:27 1 compute1
2
3
4
5
6
7
8
9
在以上案例中,compute1节点上有两个job(JOBID为512和514),compute2节点上没有任务(idle状态),因此在compute2节点处于idle状态达到10分钟以后,compute2节点会关机。