原文地址: https://blog.csdn.net/augusdi/article/details/45587373
另外可参考: https://blog.csdn.net/appleml/article/details/46712971
LSF(Load Sharing Facility)是分布资源管理的工具,用来调度、监视、分析联网计算机的负载。通过集中监控和调度,充分共享计算机的CPU、内存、磁盘、License等资源。
http://scc.ustc.edu.cn/zh_CN/ 中科大超算中心
http://www.sccas.cn/gb/index.html 中科院超算中心
http://www.ssc.net.cn/ 上海超算中心
Cluster
一组运行LSF软件的计算机(当然是用TCP/IP网络互连的),一组安装了LSF软件的计算机组成一个Cluster,Cluster内的资源统一监控和调度。
Server Host
Cluster内提交和执行Job的计算机
Client Host
Cluster内仅仅提交Job的计算机
基本上登录后系统就载入了LSF的配置,因此不需再做任何设定。 下面的命令可以用来检查LSF的相关设定:
$ env | grep LSF LSF_ENVDIR=/opt/lsf/conf LSF_BINDIR=/opt/lsf/6.2/hpuxia64/bin LSF_LIBDIR=/opt/lsf/6.2/hpuxia64/lib LSF_SERVERDIR=/opt/lsf/6.2/hpuxia64/etc XLSF_UIDDIR=/opt/lsf/6.2/hpuxia64/lib/uid $ echo $PATH ...:/opt/lsf/6.2/hpuxia64/etc:/opt/lsf/6.2/hpuxia64/bin:… |
基本指令有:bsub、bqueues、bhosts、bjobs、bkill、bhist、bacct
bsub | ||
说明 |
bsub用来提交job,常用的参数有:-n、-q、-o、-e、-J |
|
|
-n |
指定计算工作所需的核心数目。可省略,默认值是:1 |
|
-q |
指定执行计算工作的队列的名称。可省略,默认值是:xfer |
|
-o |
指定(stdout) 的输出目录名称。可省略,预设名称是:$job_id.out |
|
-e |
指定(stderr) 的输出目录名称。可省略,预设名称是:$job_id.err |
|
-J |
指定计算工作在队列中的名称。可省略,预设名称是所执行的程序名称 |
示例 |
1. |
非平行(serial ) 程式(其中以红色粗体标出的部分,是需要执行的程式名称): |
|
|
|
$ bsub ./my_program |
|
|
|
$ bsub -n 1 -q xfer -o output.txt -e error.txt -J TEST ./my_program |
|
|
|
上述两个命令执行的结果是相同的,都提交到队列xfer。不同的是stdout和stderr的输出信息路径。除此之外,后面的一个示例在队列中显示的名称为TEST,但上一个示例是my_program。 |
|
2. |
平行程式(其中以红色粗体标出的部分,是需要执行的程式名称): |
|
|
|
$ bsub -n 4 -q xfer /work1/my_small_job |
|
|
|
$ bsub -n 16 -q mono my_paralle_job |
|
|
|
上述两个例子的差别在于指定执行程序的路径位置,若未列出指定程序的完整路径,则认为执行程序位于当前的目录下。 |
|
3.
|
MPI 的程式其中以红色粗体标出的部分,是需要执行的程式名称) |
|
|
|
$ bsub -n 16 -q mono mpirun -np 4 mpi_program |
bqueues | |
说明 |
查看各个队列的排队狀況 |
示例 |
$ bqueues QUEUE_NAME PRIO STATUS MAX JL/U JL/P JL/H NJOBS PEND RUN SUSP mono 50 Open:Active 80 80 4 - 224 160 64 0 xfer 50 Open:Active 80 32 4 - 0 0 0 0 |
bhosts | |
说明 |
查看队列系统中的各个主机(host) 的状态 |
示例 | $ bhosts
HOST_NAME STATUS JL/U MAX NJOBS RUN SSUSP USUSP RSV hale ok - 88 64 64 0 0 0 halen ok - 8 0 0 0 0 0 |
bjobs | |
说明 |
查看队列系统中各个计算工作的执行状态。常用参数有:-u、-q、-l、-p |
|
-u 指定要查询的使用者账号。可省略,预设值是目前使用的账号。 |
|
-q 指定要查询的队列名称。 |
|
-l 以长格式(long format) 的方式,显示详细的队列资料。 |
|
-p 只显示暂停中(pending) 的计算工作。 |
|
不加任何参数时,只会显示目前使用者执行中或暂停中的计算工作。若要查看其他使用者计算工作的执行状态,可使用-u 参数指定要查询的使用者账号,或使用all 查询所有使用者的执行状态。(注:all 亦可套用在队列名称上。) |
示例 |
$ bjobs -u all JOBID USER STAT QUEUE FROM_HOST EXEC_HOST JOB_NAME SUBMIT_TIME 4001 u11aaa0 RUN mono halen 32*hale *igen-1010 Jan 1 02:03 4002 u12bbb0 RUN mono halen 32*hale *igen-1020 Jan 1 03:04 4003 u13ccc0 RUN xfer halen hale *igen-1030 Jan 1 04:05 4004 u14ddd0 PEND mono halen *igen-1040 Jan 1 05:06 4005 u15eee0 PEND mono halen *igen-1050 Jan 1 06:07 4006 u16fff0 PEND mono halen *igen-1060 Jan 1 07:08 4007 u17ggg0 PEND mono halen *igen-1070 Jan 1 08:09 |
bkill | |
说明 |
终止或暂停工作 |
示例 |
$bkill 4001 |
bhist | |
说明 |
用来查看(包括已执行完成的) 计算工作的执行历程及结束的原因。常用的参数有:-b、-l |
-b简短格式 | |
-l 详细资料 | |
示例 | $ bhist -l4001 Job <4001>, User , Project , Command Sat Jan 1 21:31:06: Submitted from host , to Queue , CWD , Output File , 32 Processors Requested; Sun Jan 2 17:10:38: Dispatched to 32 Hosts/Processors <32*hale>; Sun Jan 2 17:10:38: Starting (Pid 18479); Sun Jan 2 17:10:38: Running with execution home , Execution CWD , Execution Pid <10000>; Summary of time in seconds spent in various states by Sun Jan 2 16:04:18
PEND PSUSP RUN USUSP SSUSP UNKWN TOTAL 243572 0 168820 0 0 0 412392 |
bacct | |
说明 |
统计在队列系统中执行的CPU时间及相关资料。常用的参数有:-C、-l、-q、-u |
-C 指定时间。可省略,未指定则是从系统记录开始时间到现在的时间。 | |
-l 详细资料。可省略,未指定则仅显示统计数据,不会显示每一个记录。 |
|
-q 指定队列名称。可省略,未指定则是所有队列都算。 |
|
-u 指定使用者账号(可省略)。 |
|
示例 | $ bacct -u user -q mono -C 03/01,05/31 |
统计user从今年3/1 日到5/31间,提交到mono 这个队列中的使用资料。 |
以上各指令的详细用法,皆可由man page 取得。例如:man bacct、man bjobs、…
在terminal中用man bsub获得的mannual中的内容(部分),给出了bsub更多的参数:
-a
|