bsub命令
0赞一、 bsub
bsub,提交给lsf作业的命令。
命令格式
bsub [options] command [argument]
bsub -pack job_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
命令
l bjobs :查看系统的job
l bsub:提交作业
l bhist:查看作业历史
l bkill: 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的,因此要等之前的任务都完成之后,才可以执行。