文档简介:
命令行提交作业
注意:不支持使用root帐号进行任何作业提交,提交作业前请切换到普通用户。
您需要先通过ssh客户端远程登录到集群。使用bsub命令提交要批量执行的作业并为其分配唯一的数字作业ID。当满足作业、主机、队列和群集上的所有条件时,在满足作业所有要求的主机上运行作业。如果调度软件不能立即运行所有作业,调度软件的调度策略将确定分派顺序。作业将根据当前系统负载启动和挂起。
bsub的基础用法:
-r 当作业所在的计算节点出现故障,自动在另一节点上重新执行运行作业,作业所持有的编号不变。
-x 作业会独占运行的节点,不允许其他作业在该节点上运行。
-b [[month:]day:]hour:minute
定时任务,作业在给定的时间后才会开始执行。
-c [hours:]minutes
限制作业能执行的总cpu时间。超过后作业会被终止。
-e err_file
指定存储错误的路径,作业的标准错误会被输出到该文件中。
-E "pre_exec_command [arguments ...]"
使用预处理指令,为作业设置运行环境。
-f "local_file op [remote_file]" ...
该选项可以让本地(递交机)与远程(运行机)之间进行文件拷贝。通过op的不同选项,可以在不同时机以不同方向拷贝文件。
op:
> 在作业运行前将文件从本地拷贝到远程,覆盖原文件。
< 在作业完成后将文件从远程拷贝到本地,覆盖原文件。
<< 在作业完成后将文件从远程拼接到本地文件末尾。
><或<> 在作业运行前将本地文件拷贝到远程,完成后将文件从远程拷贝到本地,均采用覆盖方式。
-i input_file | -is input_file
指定存储输入的路径,作业的标准输入会被从该文件中读取。
-g job_group_name
为作业指定一个组。
-J job_name
为作业指定一个作业名称。
-m host_name
为作业指定运行机。
-M mem_limit
为作业设定最大内存空间,超过后作业会被终止。
-n min_proc[,max_proc]
为并行作业请求最小,最大占用处理器数量。若请求中设定的使用数量超过最大限制,作业将被退回。
-o out_file
指定存储输出的路径,作业的标准输出会被输出到该文件中。
-P project_name
指定作业所属的项目。
-p process_limit
设定作业所能使用的最大处理器数量,超过限额作业将被终止。
-q "queue_name ..."
指定作业所属队列名称。
-R "res_req" [-R "res_req" ...]
为作业设定各种资源消耗的预期。需配合lsf.cluster.*及lsf.shared等配置文件使用。
-sp priority
设置作业的优先级。
-S stack_limit
设置作业每个进程可以使用的堆栈限制。
-t [[month:]day:]hour:minute
设置作业的最大运行时间。超过的作业将被终止。
-v swap_limit
设置作业可使用交换区大小。超过作业将被终止。
示例:
bsub sleep 200
递交一个作业sleep及其参数200。
bsub -q short -o my_output_file "pwd; ls"
递交一个作业到队列“short”,设定标准输出到文件“my_output_file”的作业,作业内容为“pwd; ls”。
bsub -m "host1 host3 host8 host9" my_program
递交作业my_program使其在 host1,host3,host8,host9中选一个来运行。
bsub -b 20:00 -J my_job_name my_program
递交作业作业my_program,指定作业名my_job_name,使其在20:00定时开始运行。