一,bsub 提交作业

         linux系统编写程序时无可避免要把源文件编译成可执行文件,在进行运行得出结果。但在登录超级计算机等端口(linux系统),若执行文件较大可能会被软件后台查杀,无法执行得到结果。使用bsub提交作业方法可良好解决在登录端运行程序,避免程序运行中用较大较多资源时被kill。使用bsub作业提交的方法能很好的解决这个问题。

      命令格式:

       bsub  [options]   command   [argument]

相关参数:

-q    选择队列

-i     指定输入文件  

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

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

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

-n     指定作业需要的CPU核

-J     作业的名字

-w    提交作业前,指定操作。

-W    限定作业运行时间

-K     提交作业,并且等待作业完成。当提交作业后,终端打印“waiting for dispath”。当作业完成后,终端打印“job is finished”。作业没有完成,不能提交新的作业。

二,  bsub 提交作业 使用详解

  1. 首先写一个程序代码

      Vi  hello.c  (c语言 编写)

2 gcc 编译 把代码变成可执行文件

     gcc  -o  hello  hello.c    

gcc : 编译c c++ 程序的编译器

-o : 链接文件 hello.c  把文件生成 hello (可执行文件)

ls : 列表当下文件里的所有文件   此时有 hello hello.c

3 指定当前文件目录

  ./hello   (./t  这种形式就是直接编译)

(Vi Hello  里边是乱码 ,编译出的结果是正确的)

4 编写脚本文件(可以理解为执行hello目标文件前的一些操作设置)

      vi  hello.bsub

   # BSUB  -W  00:2     -w 指定运行时间 00:2  小时:分钟

   #BSUB  -n   1          -n  1 作业需要使用的核心数为1

   #BSUB  -R  “span[ptile=1]”   指定作业在单个节点上使用的核心数为1

   #BSUB  -q  gpu       -q  指定作业提交到gpu队列 (一般个gpu,mic即可)

   #BSUB  -o  hello.out      标注输出文件(有错误 输出为空)

   #BSUB  -e  hello.err  错误输出文件(有错误这个文件里会给出,无错误为空)

   

    ./hello           指定输出路径

5  运行脚本文件

       bsub  <  hello.bsub   

       bjobs 命令  查看运行是否结束

  ls  此时可看到五个文件:hello.c   hello   hello.bsub   hello.out   hello.err

vi  hello.out  进入 .out 文件可看到所有详细信息

 此时一个完整的bsub 提交作业(运行程序)结束

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐