LSF---【bsub命令】
LSF--[bsub命令]一、bsub命令1.1 命令参数二、常用查看命令1.bhosts2.bqueues3.bjobs4.bkill4.bhist一、bsub命令bsub [options] command [argument]1.1 命令参数-q 选择队列-i 指定输入文件-o 指定输出文件,作业提交后标准输出的信息会保存到这个文件中-e 指定输出文件,作业提交后标准错误输出的信息保存到这个
LSF--[bsub命令]
摘要
资源管理器:管理超算系统的硬件资源及认证信息等
队列管理器:管理当前已经提交但还未完成的作业
调度器:为作业分配资源
主要作用:根据用户作业提出的需求分配对应的资源给作业,告诉作业给它分配哪些节点等避免作业之间无序干扰,尽量让整个系统的负载一致保证用户占用资源的长期内公平
一、bsub命令
bsub
[options] command [argument]
1.1 命令参数
-q 选择队列
-i 指定输入文件
-o 指定输出文件,作业提交后标准输出的信息会保存到这个文件中
-e 指定输出文件,作业提交后标准错误输出的信息保存到这个文件夹中.
-n 指定作业需要的CPU 核
-J 作业的名字
-m 丢job到指定的机器上
-I 交互式模式,此时终端不能输入
-Ip 提交job的时候提供虚拟terminal支持,如vim这种应用是需要terminal支持的.
-R 指定为当前任务的资源需求。
示例:任务需要10G内存
##简单提交任务
bsub -Ip -q <QUENE NAME> -p <PROJECT NAME> -m <Host1/Host2>
##提交任务并指定内存
bsub -Ip -q long -l -R rusage[mem=10240] -m "ServerA ServerB" -J job00
二、常用查看命令
2.1 bhosts
利用bhosts
命令可查看当前各节点的空闲情况。
xx@ServerA# bhosts
HOST_NAME STATUS JL/U MAX NJOBS RUN SSUSP USUSP RSV
c01n01 closed − 4 2 2 0 0 0
c02n03 ok − 2 2 1 0 0 0
STATUS:
- ok: 表示可以接收新作业,只有这种状态可以接受新作业
- closed: 表示已被作业占满,不接受新作业
- unavail和unreach: 系统停机或作业调度系统服务有问题
bhosts c01n01
查看c01n01节点
bhosts groupCHEM
查看groupCHEM节点组
bhosts < queue name>
查看当前队列运行情况:
xx@ServerA# bhosts ww_xx
JOBID USER STAT FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME
234407 angel RUN szll01 lab04 *_proj.tgz Apr 21 10:17
234411 angel RUN szll01 lab02 *_run.tcl Apr 21 11:20
....
bhosts −l
会显示节点详细信息,其中slots表示目前最大可以接受作业槽数(默认一般与CPU核数一致)
2.2 bqueues
利用bqueues可以查看现有队列信息,例如:bqueues
QUEUE_NAME | 队列名 |
---|---|
PRIO | 优先级,数字越大优先级越高 |
STATUS | 状态 |
Open | 队列开放,可以接受提交新作业 |
Active | 队列已激活,队列中未开始运行的作业可以开始运行 |
Closed | 队列已关闭,不接受提交新作业 |
Inact | 队列未激活,可接受提交新作业,但队列中的等待运行的作业不会开始运行 |
JL/U | 单个用户同时可以使用的CPU核数 |
MAX | 队列对应的最大作业槽数(Job Slot,一般与CPU核数一致,以下通称CPU核数),-表示无限 |
JL/P | 每个处理器可以接受的CPU核数 |
JL/H | 每个节点可以接受的CPU核数 |
NJOBS | 排队、运行和被挂起的总作业所占CPU核数 |
PEND | 排队中的作业所需CPU核数 |
RUN | 运行中的作业所占CPU核数 |
SUSP | 被挂起的作业所占CPU核数 |
RSV | 为排队作业预留的CPU核数 |
[ServerA@hmli] bqueues
QUEUE_NAME PRIO STATUS MAX JL/U JL/P JL/H NJOBS PEND RUN SUSP
nc 30 Open : Active − − − − 0 0 0 0
chem 30 Open : Active − − − − 224 0 224 0
math 30 Open : Active − − − − 272 80 192 0
other 30 Open : Active − − − − 0 0 0 0
phy_long 30 Open : Active − − − − 720 224 496 0
phy_7days 30 Open : Active − − − − 1056 240 816 0
phy_1day 30 Open : Active − − − − 0 0 0 0
2.3 bjobs
利用bjobs
可以查看作业的运行情况,bjobs | wc
统计总的job数。
[ServerA@hmli] bjobs
OBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME
79726 hmli RUN other login 2*c01n02 *executab1 Mar 12 1 9:20
1*c01n04
79727 hmli PEND phy_1day login *executab2 Mar 12 1 9:20
显示:
- 作业79726分别在c01n02和c01n04上运行2、1个进程
- 作业79727处于排队中尚未运行
查看作业的详细信息−l选项:bjobs −l 79727
2.4 bkill
利用 bkill
命令可以终止某个运行中或排队中的作业,如:
[ServerA@hmli] bkill 79726
Job <79722 > is being terminated
2.5 bhist
bhist -a
: 查看已经运行完毕的作业信息
2.6 busers
利用busers
可以查看用户信息
[ServerA@hmli] busers hmli
USER/GROUP JL/P MAX NJOBS PEND RUN SSUSP USUSP RSV
hmli − 22 40 32 8 0 0 0
MAX: 最大可以同时运行的核数
NJOBS: 当前所有运行和待运行作业所需的核数
PEND: 排队等待运行的作业所需要的核数
RUN: 已经开始运行的作业占据的核数
三、提交作业
1.通过busb命令,将该a.out可执行文件,提交2次作业。
-J参数,执行作业的名字。
-o参数指定lsf执行该可执行文件的输出,保存到指定文件。
bsub -J 'ISE' -o /home/hmli/lsf/lsf.result ./hello.out
bsub -J 'ISE' -o /home/hmli/lsf/lsf.result ./hello.out
bsub -I -w "ended(ISE)" echo "hello.out has been finished"
2.最后要等待这些作业完成,通过以下bsub命令。提交一个作业,只是打印信息:
bsub –I –w “ended(ISE)” echo “hello.out has been finished”
-I 参数,表示和终端交互,后续提交的任务要等这个任务完成后,才可以提交
-w ”ended…” 指定该作业要等作业名中有aaaaaaaa的作业都完成后,才可以提交。
[ServerA@hmli] bsub -J 'ISE' -o /home/hmli/lsf/lsf.result ./hello.out
Job<691120> is submitted to defult queue <normal>.
[ServerA@hmli] bsub -J 'ISE' -o /home/hmli/lsf/lsf.result ./hello.out
Job<691121> is submitted to defult queue <normal>.
[ServerA@hmli] bsub -I -w "ended(ISE)" echo "hello.out has been finished"
Job<691122> is submitted to defult queue <interactive>.
<<Waiting for dispatch ...>>
<<Starting on ISE_Demo>>
hello.out has been finished
更多推荐
所有评论(0)