LSF Command

 Commands

Basic Command

Usage

bsub

Submits a batch job to lsg

bjobs

See the status of jobs in the LSF queue

bkill

Kill a running job (’bkill 0’ kills all the job one user submits)

bqueues

Displays information about queues

bhosts

Displays hosts and their job condition.

lshostsDisplay hosts and their resource condition (cpu/memory).
lsloadDisplay host and their load condition (cpu/memory).

For more detailed information, please check “man bsub/bjobs”

bsub

❖ bsub [常用选项] 

-app:将指定的 job profile 分配给作业。对于作业数组,其中的每一个作业元素都分配相同的 job profile。job profile 在$LSF_ENVDIR/lsb.apps 和/或$HOME/.Cube/lsb.apps 中定义

-B:当作业被分发并开始执行时,发送邮件

-n:用于提交并行作业,指定该作业所需的 CPU 个数

-o filename:重定向该作业的 stdout,stderr 和资源使用率信息至指定的 output file

-e filename:重定向 stderr 至指定的 error 文件

-i filename:使用指定的文件作为该作业的标准输入文件

-q qname:将该作业提交至指定的队列

-m hname:选取一个或多个主机,或一个主机组。可以使用关键字“all”和“others”

-J jobname:为作业指定一个名称

-L login_shell:用指定的 login shell 初始化执行环境

-n number:指定 job slot 的个数

-I | -Ip | -Is 提交一个批量的交互式作业。在此交互式作业执行完成或终止前,不能提交新的作业。将该作业的标准输出(或标准错误)发送至终端。

主机选取(Selection)- select[selection_string]


MBD 选择最合适的执行主机。主机的选取依据主机选取字符串的值进行。主机选取字符串(select):

❖ 是由一系列的资源名称构建得到的一个逻辑表达式

❖ 指定了能被选择作为候选 execution 主机的 server 主机的特征

❖ 对每个主机都进行评估

❖ 当此表达式的值为“true”时,该主机被选择为候选 execution 主
eg:
bsub -R "select[swp>=300 && mem>500]" job1

提交作业至一个候选主机,要求该主机有至少 300 MB 的可用交换分区和至少 500 MB的可用内存。

资源排序(Ordering)- order[order_string]

用于对候选的 execution 主机根据资源值进行分类排序,使用资源排序字符串(order)实现:
order 资源排序

❖ 第一个指标为主分类指标,第二个指标为次分类指标,依此类推

❖ 主机根据指定的一个或多个指标按照从最好至最坏的顺序进行排序

❖ 当作业级别的和队列级别的该指标分别被定义时,作业级别的优先

❖ 默认的排序字符串为 order[r15s:pg]
eg:
bsub -R "select[type==any && swp>=300 && mem>500] order[mem]" job1
其中 order[mem]表示对候选的 execution 主机按照可用内存值从最高至最低进行排序

资源使用率(Usage)- rusage[rusage_string]

❖ 作业级别的资源要求:bsub -R

❖ 队列级别的资源要求:RES_REQ
集群中 slave 主机上的 Cube daemon 会定期将资源使用率信息上报给 master 主机;master 主机从所有 slave 主机上收集所有资源的使用率信息。 资源使用率字符串(rusage)用于指定 execution 主机上的资源预留。默认情况下,无资源预留。当运行交互式任务时可忽略。当作业级别的和队列级别的 rusage 均被定义时,作业的级别优先。
eg:
bsub -R "select[swap>=300 && mem>500] order[swap:mem] rusage[swap=300,mem=500]" job1
在被选取的主机上,为运行该作业预留 300 MB 的交换分区和 500 MB 的内存

通过rusage[mem=500]预留内存大于jobs使用内存时可避免SUSP情况

资源位置(Locality)- span[span_string]

用于指定并行作业的位置。 支持的选项: ❖ span[hosts=1]:代表分配给该作业的所有处理器必须在同一个 execution 主机上 ❖ span[ptile=n]:代表每个 execution 主机上都要分配给该作业多达 n 个处理器当此字符串(span)在作业级别和队列级别分别被定义时,作业级别的定义优先。
eg:
bsub -n 16 –R "select[ut<0.15] order[ut] span[hosts=1]" parallel_job1
用来完成该作业的所有处理器必须在同一个 execution 主机上。

bsub -n 16 –R "select[ut<0.15] order[ut] span[ptile=2]" parallel_job2

每个 execution 主机上,可以使用 2 个 CPU 来运行该作业,因此至少需要 8 个 execution主机用来完成该作业

Some other examples.

====

  1. Job need 4 cpu slots, every slot need 100G memory (Total 4*100=400G memory).
    任务属于项目test,需要4个cpu核,为每个核预占100G内存(内存默认按照cpu核分配,而不是按照job分配),总体预留400G内存。
    bsub -P test -n 4 -R "rusage[mem=100000]" "COMMAND"
  2. Job need 4 cpu slots, and the 4 slots must be on the same host.
    任务属于项目test ,需要4个cpu核,且要求4个核在同一台机器上(在设置了“span[hosts=1]”的前提下,机器上总共剩余100G内存任务即可投递成功)
    bsub -P test -n 4 -R "span[hosts=1] rusage[mem=100000]" "COMMAND"
  3. Submit job into pd queue, select the hosts who have 500G+ memory, 100G+ swap, 100G+ tmp.
    任务属于项目test ,需要投递到pd队列,要求投递的机器剩余内存大于500G,剩余swap大于100G,剩余tmp空间大于100G。(select能够选择当前满足条件的机器,但是不能预占机器上的资源,用rusage预占资源)
    bsub -P test -q pd -R "select[mem>=500000 && swap>=100000 && tmp>=100000]" "COMMAND"
  4. Submit job into pd queue, need 8 cpu slots, reserve 100G memory, 100G swap, select the hosts who have 100G+ tmp.
    任务属于项目test ,需要投递到pd队列,需要8个cpu核,选择tmp空间大于100G的机器,预占100G内存和100Gswap。
    bsub -P test -q pd -n 8 -R "rusage[mem=100000:swap=100000] select[tmp>=100000]" "COMMAND"
  5. Submit job into pd queue, need >8 cpu slots, or  sorts by CPU 
    提交任务需要按照cpu slots来提交任务
    bsub -P test  -q pd -R  "rusage[mem=1024] select[slots>8]" "COMMAND"
    or
    bsub -P test -q pd  -R  "rusage[mem=1024] order[slots]" "COMMAND"

说明:

以上资源默认单位为MB

====

bjobs

  • PEND 正在排队
  • RUN 正在运行
  • DONE 正常退出
  • EXIT 异常退出
  • SSUSP 被系统挂起
  • USUSP 被用户自己挂起

❖ bjos [常用选项] 

-a:显示所有作业的信息,无论哪种状态(包含已执行完成的作业) 

-A:显示作业数组的概况信息

-app profile_name:显示与所指定的 profile 相匹配的作业。其中 profile_name可以以通配符(*)开始或结束,如“*proj123“、“proj*“

-d:显示最近执行完成的作业的信息

 -l|-w:以 long 或 wide 格式显示信息

-p:显示 pending 状态的作业的信息

-r:显示 running 状态的作业的信息

-m host_list:显示指定的主机或主机组上的作业的信息 

-q queue_name:显示指定队列内的作业的信息

Some examples.

====

  1. 查看jobs 123456 的运行状态,以及job PEND reason and job memory/swqp usage
    bjobs -l 123456
  2. 查看node05运行了那些jobs
    bjos -m node05 -u all
  3. 查看所有的作业信息,无论是那种状态
    bjos -a

====

其他command可参考:IBM Docs

        

  • 1
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值