bsub命令
0赞一、bsub
bsub,提交给lsf作业的命令。
命令格式
bsub[options]command[argument]
bsub-packjob_submission_file
-q选择队列
-i指定输入文件
-I交互模式,此时终端不能输入
-o指定输出文件,作业提交后标准输出的信息会保存到这个文件中。
-e指定输出文件,作业提交后标准错误的信息会保存到这个文件中。
-n指定作业需要的CPU核
-J作业的名字
-w‘dependecy_expression’,提交作业前,指定操作。
操作有:done
ended,如–e “ended(aaaa*)”,表示作业名中有aaaa的作业,完成之后才可以提交作业
exit
-W限定作业运行时间
-K提交作业,并且等待作业完成。当提交作业后,终端打印“waiting for dispath”。当作业完成后,终端打印“job is finished”。作业没有完成,不能提交新的作业。
%J,可表示作业号
LSF(load sharing facility)是分布资源管理的工具,用来调度、监视、分析联网计算机的负载。
目的:
通过集中监控和调用,充分共享计算机的CPU、内存、磁盘、license等资源
一组安装了LSF软件的计算机组成了一个cluster。cluster内的资源统一监控和调度。
server host:cluster内提交和执行job的计算机
client host:cluster内仅仅提交job的计算机
JOB
-提交给LSF的命令
-LSF负责调度、控制、跟踪job
命令
lbjobs:查看系统的job
lbsub:提交作业
lbhist:查看作业历史
lbkill:kill一个作业
bqueues命令,可以查看队列情况
参数 |
解释 |
QUEUE_NAME |
队列的名字 |
PRIO |
队列的优先级,数字越大,优先级越高 |
STATUS |
状态 Open:Active :表示已激活,可使用 Closed:Active:表示已关闭,不可使用 |
MAX |
队列对应的最大CPU核数 l表示无限 |
JL/U |
单个用户同时可以使用的CPU核数 |
NJOBS |
排队、运行和被挂起的总作业所占CPU核数 |
PEND |
排队中的作用所需CPU核数 |
RUN |
运行中的作业所占CPU核数 |
SUSP |
被挂起的作业所占CPU核数 |
bsub提交的作业,有一个JOBID和JOB_NAME。JOBID不可设置,JOB_NAME可以设置。
bsub命令的–J参数,可以指定JOB_NAME。
二、例子
一个c程序,如下所示:
编译生成a.out可执行文件,然后将该文件通过bsub提交,执行。
通过busb命令,将该a.out可执行文件,提交8次作业。-J参数,执行作业的名字。-o参数指定lsf执行该可执行文件的输出,保存到指定文件。
最后要等待这些作业完成,通过以下bsub命令。
bsub –I –w “ended(aaaaaaaaaa*)”echo “a.out finished”
提交一个作业,只是打印信息:
l-I参数,表示和终端交互,后续提交的任务要等这个任务完成后,才可以提交
l-w ”ended..”指定该作业要等作业名中有aaaaaaaa的作业都完成后,才可以提交。
执行这些命令的打印信息。每个任务有一个JOB_ID。
执行的过程中,通过bjobs命令,可以查看作业情况。对于最后一个任务,状态是PEND的,因此要等之前的任务都完成之后,才可以执行。