查看LSF计算节点列表bhosts

# bhosts
HOST_NAME STATUS JL/U MAX NJOBS RUN SSUSP USUSP RSV
fat01 ok - 16 0 0 0 0 0
fat02 ok - 16 0 0 0 0 0
fat03 ok - 16 0 0 0 0 0
fat04 ok - 16 0 0 0 0 0
fat05 ok - 16 0 0 0 0 0
fat06 ok - 16 0 0 0 0 0
fat07 ok - 16 0 0 0 0 0
fat08 ok - 16 0 0 0 0 0
fat09 ok - 16 0 0 0 0 0
fat10 ok - 16 0 0 0 0 0
......

查看LSF队列bqueues

查看所有队列的整体信息:

# bqueues
QUEUE_NAME PRIO STATUS MAX JL/U JL/P JL/H NJOBS PEND RUN SUSP
cpu 40 Open:Active - - - - 2072 0 2072 0
fat 40 Open:Active - - - - 0 0 0 0
gpu 40 Open:Active - - - - 288 0 288 0
mic 40 Open:Active - - - - 0 0 0 0
cpu-fat 40 Open:Active - - - - 16 0 16 0

查看某个队列的信息:

# bqueues fat
QUEUE_NAME PRIO STATUS MAX JL/U JL/P JL/H NJOBS PEND RUN SUSP
fat 40 Open:Active - - - - 0 0 0 0

查看计算节点负载lsload

查看整体负载:

# lsload
HOST_NAME status r15s r1m r15m ut pg ls it tmp swp mem
node011 ok 0.0 0.3 0.4 0% 0.0 0 49024 193G 62G 61G
node039 ok 0.0 0.6 0.5 0% 0.0 0 49024 194G 62G 61G
node041 ok 0.0 0.0 0.0 0% 0.0 0 49024 194G 62G 61G
node050 ok 0.0 0.0 0.0 0% 0.0 0 49024 194G 62G 60G
node064 ok 0.0 0.7 0.6 0% 0.0 0 49024 194G 62G 61G
node077 ok 0.0 0.7 0.5 0% 0.0 0 49024 194G 62G 61G
.....

查看某个节点的负载:

# lsload node001
HOST_NAME status r15s r1m r15m ut pg ls it tmp swp mem
node001 ok 0.3 0.1 0.1 1% 0.0 0 332 152G 62G 61G

使用LSF提交作业bsub

手动提交作业

LSF使用bsub提交作业。bsub命令的格式是:

bsub -n Z -q QUEUENAME -i INPUTFILE -o OUTPUTFILE COMMAND

其中:Z提交作业需要的线程数,-q指定作业提交的队列。如果不添加-q选项,系统将把作业提交到默认的作业队列。 INPUTFILE表示程序需要读入的文件名,OUTPUTFILE表示输出文件名,作业提交后的输出到标准输出信息将会保存在这个文件中。

对于串行作业,COMMAND可以直接使用您的程序名。 例如,将串行程序mytest的通过LSF提交:

bsub -n 1 -q q_default -o mytest.out ./mytest

对于MPI并行作业,COMMAND的格式为-a mpich_gm mpirun.lsf PROG_NAME。 例如,将并行程序mytest,通过LSF提交,使用16个线程运行这个作业:

bsub -n 16 -q q_default -o mytest.out -a mpich_gm mpirun.lsf ./mytest

交互式批量提交

使用bsub还可以启动一个交互式的shell环境,一次提交多个运行参数相同的并行作业。例如下面的操作:

# bsub
bsub> -n 16
bsub> -q q_default
bsub> -o output.txt
bsub> COMMAND1
bsub> COMMAND2
bsub> COMMAND3

等价于:

bsub -n 16 -q q_default -o output.txt COMMAND1
bsub -n 16 -q q_default -o output.txt COMMAND2
bsub -n 16 -q q_default -o output.txt COMMAND3

编写LSF作业控制脚本

#BSUB -n 16
#BSUB -q q_default
#BSUB -o output.txt
-a mpich_gm mpirun.lsf ./mytest

bsub还接受来自标准输入的作业说明。 因此,我们可以编写LSF脚本提交作业。 bsub脚本简单易写,上面一段代码是名为bsub.script的完整例子,将bsub.script通过输入重定向,提交给LSF:

bsub < bsub.script  

这等价于:

bsub -n 16 -q q_default -o output.txt -a mpich_gm mpirun.lsf ./mytest

一个功能更完整的LSF作业控制脚本

#BSUB -J HELLO_MPI
#BSUB -o job.out
#BSUB -e job.err
#BSUB -n 256
source /lustre/utility/intel/composer_xe_2014.3.163/bin/compilervars.sh intel64
source /lustre/utility/intel/mkl/bin/intel64/mklvars_intel64.sh
source /lustre/utility/intel/impi/4.1.1.036/bin64/mpivars.sh
MPIRUN=`which mpirun`
EXE="./mpihello"
CURDIR=$PWD
cd $CURDIR
rm -f nodelist nodes >& /dev/null
touch nodelist
touch nodes
NP=0
for host in `echo $LSB_MCPU_HOSTS |sed -e 's/ /:/g'| sed 's/:n/\nn/g'`
do
echo $host >> nodelist
echo $host | cut -d ":" -f1 >> nodes
nn=`echo $host | cut -d ":" -f2`
NP=`echo $NP+$nn | bc`
done

其他作业管理操作

查看作业状态bjobs

检查已提交的作业的运行状态:

bjobs

以宽格式来显示作业运行状态:

bjobs -w

显示所有作业:

bjobs -a

显示正在运行的作业:

bjobs -r

显示等待运行(pending)的作业和等待的原因:

bjobs -p

显示已经挂起(suspending)的作业和挂起的原因:

bjobs -s

显示JOBID这个作业的所有信息:

bjobs -l JOBID

终止作业bkill

终止不需要的作业:

bkill

终止JOBID这个作业:

bkill JOBID

直接将作业JOBID从LSF中移除,而不等待该作业的进程在操作系统中终结:

bikill JOBID

监视作业输出bpeek

当作业正在运行时,显示它的标准输出,监视作业运行:

bpeek

查看JOBID的标准输出:

bpeek JOBID

作业历史信息bhist

显示作业的历史情况:

bhist

显示JOBID作业的历史情况:

bhist JOBID

最新文章

  1. HTML和CSS经典布局2
  2. inline-block元素间距
  3. flask_日期和时间
  4. 浅谈-js递归函数
  5. [UI]实用案例--Shape绘制实用圆圈
  6. OJ-上海交大-1021. 从前有座山
  7. ubuntu下搭建JAVA开发环境【转】
  8. hitTest方法与PointInside方法
  9. C#单元测试
  10. GDAL读取tiff文件/C++源码
  11. 实现app上对csdn的文章查看,以及文章中图片的保存 (制作csdn app 完结篇)
  12. Linux apt-get error
  13. SessionState的配置 [转载]
  14. Selenium也是一个用于Web应用程序测试的工具
  15. (转)CASE WHEN 用法
  16. H5的简介
  17. Error: Java heap space
  18. 支撑大规模公有云的Kubernetes改进与优化 (3)
  19. Android -- VelocityTracker
  20. 算法笔记_190:历届试题 幸运数(Java)

热门文章

  1. 学习Python要知道哪些重要的库和工具
  2. 了解下C#异常时的输出
  3. 压缩图片或pdf
  4. api下载文件
  5. JavaScript中变量声明以及数据类型
  6. php多进程实现 亲测
  7. 如何移除git不需要提交的文件
  8. 编写DBCP连接池
  9. Java-----思想认识
  10. struts2 国际化语言转换