LSF bsub作业提交的几种方式

bsub 作业提交

busb 命令用于向 LSF 作业管理系统提交作业请求。 bsub 可接收的参数很多,通过指定不同的运行参数,可以精细地设定作业运行需求。

$ bsub -h 命令参数

-q 选择队列

-i 指定输入文件

-o 指定输出文件,作业提交后标准输出的信息会保存到这个文件中

-e 指定输出文件,作业提交后标准错误输出的信息保存到这个文件夹中.

-n 指定作业需要的CPU 核

-J 作业的名字

-m 丢job到指定的机器上

-I 交互式模式,此时终端不能输入

-Ip 提交job的时候提供虚拟terminal支持,如vim这种应用是需要terminal支持的.

-R 指定为当前任务的资源需求。

————————————————

1直接输入完整参数提交

直接输入 bsub 完整参数,可以方便地提交单线程作业。 下面这条命令提交了一个需要一个 CPU 核运行的单线程作业:

$ bsub -n 1 -q cpu -o job.out ./myprog “-input data.txt”

主要参数说明如下:

  • -n 指定所需的计算核心数。
  • -q 指定作业运行的队列,在集群上可用的计算队列有 cpu、fat、gpu和 mic等。
  • -o 指定作业运行信息的输出文件。
  • ./myprog 是要提交运行的可执行文件,
  • “-input data.txt”是传递给 myprog 的命令行参数。

当然,这种用法仅适用于简单的作业,更复杂的作业控制需要编写作业脚本,请参考下面“使用作业脚本提交”。

2、作业脚本提交

作业脚本是带有“bsub 格式”的纯文本文件。 作业脚本易于编辑和复用,是提交复杂作业的最佳形式。 下面是名为 job.script 的作业脚本的内容:

#BSUB -n 4

#BSUB -q cpu

#BSUB -o job.out

# input file is data.txt

./mytest “-input data.txt”

其中以#BSUB 开头的行表示 bsub 作业参数,其他#开头的行为注释行,其他行为脚本运行内容。作业脚本的使用方法很简单,只需要把脚本内容通过标准输入重定向给 busb:

$ bsub < job.script

以上脚本等价于如下命令:

$ bsub -n 1 -q cpu -o job.out ./mytest “-input data.txt”

bsub 默认会调用/bin/sh 执行脚本内容,因此可以使用 Shell 编程脚本对作业参

数进行处理和控制。 下面这个作业脚本提交了一个需要 64核心的 MPI计算任务。在下面名为 64core.script 的作业脚本会由 LSF 使用 bash 解释运行,需要使用64 个核心,且要求每个节点提供 16 个计算核心。

# 64core.script

#BSUB -L /bin/bash

#BSUB -J HELLO_MPI

#BSUB -n 64

#BSUB -e %J.err

#BSUB -o %J.out

#BSUB -R “span[ptile=16]”

#BSUB -q cpu

MODULEPATH=/lustre/utility/modulefiles:$MODULEPATH

module purge

module load openmpi/gcc/1.6.5

mpirun ./mpihello

用户在命令行下用 bsub 提交作业:

$ bsub < 64core.script

关于 MPI 程序和作业脚本的详细例子,请参考《并行程序示例》中的内容。

3、交互提交

键入 bsub 回车后,可进入 bsub 交互环境输入作业参数和作业程序。 bsub 交互环境的主要有点是可以一次提交多个参数相同的作业。例如:

$ bsub

bsub> -n 1

bsub> -q cpu

bsub> -o job.out

bsub> PROG1

bsub> PROG2

bsub> PROG3

bsub> CTRL+d

等价于提交了 PROG1、PROG2 和 PROG3 三个作业程序:

$ bsub -n 1 -q cpu -o job.out PROG1

$ bsub -n 1 -q cpu -o job.out PROG2

$ bsub -n 1 -q cpu -o job.out PROG3 指定作业运行的节点

在作业脚本中可以使用#BSUB -R “select[hname=HOSTNAME]”指定作业运行的节点。譬如:

# 16core.script

#BSUB -L /bin/bash

#BSUB -J HELLO_MPI

#BSUB -n 16

#BSUB -e %J.err

#BSUB -o %J.out

#BSUB -R “span[ptile=16]”

#BSUB -R “select[hname=mic02]”

#BSUB -q cpu

MODULEPATH=/lustre/utility/modulefiles:$MODULEPATH

module purge

module load openmpi/gcc/1.6.5

mpirun ./mpihello

LSF bsub作业提交的几种方式

发表回复

滚动到顶部