【超算作业调度系统--LSF】

集群服务器--LSF作业调度系统使用

  • 0 Introdutction
  • 1 命令
    • 1.1 bsub--作业提交命令
      • 1.1.1 $ bqueues --查看现有队列信息;
      • 1.1.2 $lsload --查看各节点运行情况
      • 1.1.3 $bhosts --查看各节点空闲情况
      • 1.1.4 $busers --查看用户信息
      • 1.2 bsub --提交作业
      • 1.2.1 bsub OMP_NUM_THREADS 指明需要共享内存
      • 1.2.2 bsub -R 指明需要某种资源作业
      • 1.2.3 bsub -x 运行排他性运行作业
      • 1.2.4 bsub -Is 运行交互式作业
      • 1.2.5 bsub -w 满足依赖关系运行作业
      • 1.2.6 bsub -b time
    • 1.3 bjobs --查看作业排队和运行情况
    • 1.4 bkill --终止作业
    • 1.5 bstop --挂起作业
    • 1.6 bresume --继续运行刮起的作业

前天组织考试了LSF和SVN的使用,结果挂在了LSF的考试上–Failed;

0 Introdutction

LSF:是IBM公司开发的对超算集群服务器的作业统一调度系统;
主要有:

  1. 资源管理器:管理超算集群服务器的硬件资源;
  2. 队列管理器:管理当前已经提交但还未完成的作业;
  3. 作业调度器:为作业分配合适的硬件资源(计算+存储);

作用:

  1. 根据用户提交的计算作业分配相应的资源节点;
  2. 避免作业之间无序干扰,尽量让整个系统负载一致;

1 命令

概念:
登陆节点:主要用于日常操作,如提交作业、查看作业运行情况、编
辑、编译、压缩/解压缩等常用命令;
不要在登陆节点运行作业,即必须通过bsub提交作业
作业节点:即真实作业提交运算节点;

1.1 bsub–作业提交命令

所有需要运行的作业均必须通过作业提交命令bsub提交;

1.1.1 $ bqueues --查看现有队列信息;

会看到列名:QUEUE_NAME PRIO. STATUS
2.$ bqueues -l dfbdv
进行查看队列的详细信息;
CPU计算队列:
GPU计算队列:
Principle:非GPU作业不得使用GPU计算队列**
申请核数尽量以 8或者其他的倍数,以为能独占单个节点,避免作业间相互干扰;
3.

1.1.2 $lsload --查看各节点运行情况

1.$ lsload
ut表示利用率
2.$ lsload node --查看某节点运行情况;

1.1.3 $bhosts --查看各节点空闲情况

类似lsload 命令

1.1.4 $busers --查看用户信息

1.2 bsub --提交作业

bsub [options] command [arguments]
command之前的options:设置队列、CPU核数等LSF的选项
command之后的arguments:设置具体作业的可执行程序本身所需要
的参数;
For understanding:
为了用户作业间不相互干扰,申请的核数最好为系统节点内CPU核
数的整数倍,以便同一个作业占据整个节点

比如对每个节点为8核的系统,申请核数为8的整数倍,节点核数
为12的系统,申请核数为12的整数倍
曙光TC4600百万亿次超级计算系统:每个节点24 CPU核
ChinaGrid高性能计算集群:每个节点16 CPU核
联想1800和7000G GPU集群:每个节点8 CPU核

1.2.1 bsub OMP_NUM_THREADS 指明需要共享内存

需求:OpenMP等共享内存作业提交,则需要保证在同一个节点上运行;程序启动前利用OMP_NUM_THREADS设定指定的线程数,一般应
与申请的核数一致;-R ‘‘span[hosts=1]’’保证在同一个节点内。
bsub -q normal -n 8 -R ‘‘span[hosts=1]’’ OMP_NUM_THREADS=8 exec

1.2.2 bsub -R 指明需要某种资源作业

1.2.3 bsub -x 运行排他性运行作业

排他性运行在运行期间,不允许其余的作业提交到运行此作业的节
点,并且只有在某节点没有任何其余的作业在运行时才会提交到此
节点上运行;
另外使用排他性运行时,哪怕只使用某节点内的一个CPU核,也将按
照此节点内的所有CPU核数进行机时计算;

1.2.4 bsub -Is 运行交互式作业

即运行期间手动输入参数;

1.2.5 bsub -w 满足依赖关系运行作业

done(job_ID |“job_name” …):作业结束时状态为DONE时运行
ended(job_ID | “job_name”):作业结束时状态为DONE或EXIT时运行
exit(job_ID | “job_name” [,[operator] exit_code]):作业结束时状态
为EXIT,且退出代码满足一定条件时运行
external(job_ID | “job_name”, “status_text”):作业状态变为某状态时运
行,如变为SUSP
· · · · · ·
支持的条件之间的条件表达式:&&(和)、||(或)、!(否)
支持的条件内的条件算子:>、>=、<、<=、==、!=
Eg: :bsub -w ‘‘done(1456)’’

1.2.6 bsub -b time

利用-b [[year:][month:]day:]hour:minute可以使得新提交的作业在特
定时间运行;

1.3 bjobs --查看作业排队和运行情况

利用bjobs可以查看作业的运行情况;
bjobs -l job_id. 查看详细信息;
bjobs -p 查看作业仍在排队等待的原因;

1.4 bkill --终止作业

利用bkill命令可以终止某个运行中或排队中的作业;

1.5 bstop --挂起作业

加 job_id 即可;

1.6 bresume --继续运行刮起的作业

接 job_id即可;

你可能感兴趣的:(超算,LSF)