bsub -R “锁定资源”

主机选取(Selection)- select[selection_string]

MBD 选择最合适的执行主机。主机的选取依据主机选取字符串的值进行。主机选取字符串(select):

❖ 是由一系列的资源名称构建得到的一个逻辑表达式

❖ 指定了能被选择作为候选 execution 主机的 server 主机的特征

❖ 对每个主机都进行评估

❖ 当此表达式的值为“true”时,该主机被选择为候选 execution 主

eg:

bsub -R “select[swp>=300 && mem>500]” job1

提交作业至一个候选主机,要求该主机有至少 300 MB 的可用交换分区和至少 500 MB的可用内存。

资源排序(Ordering)- order[order_string]

用于对候选的 execution 主机根据资源值进行分类排序,使用资源排序字符串(order)实现:

order 资源排序

❖ 第一个指标为主分类指标,第二个指标为次分类指标,依此类推

❖ 主机根据指定的一个或多个指标按照从最好至最坏的顺序进行排序

❖ 当作业级别的和队列级别的该指标分别被定义时,作业级别的优先

❖ 默认的排序字符串为 order[r15s:pg]

eg:

bsub -R “select[type==any && swp>=300 && mem>500] order[mem]” job1

其中 order[mem]表示对候选的 execution 主机按照可用内存值从最高至最低进行排序

资源使用率(Usage)- rusage[rusage_string]

❖ 作业级别的资源要求:bsub -R

❖ 队列级别的资源要求:RES_REQ

集群中 slave 主机上的 Cube daemon 会定期将资源使用率信息上报给 master 主机;master 主机从所有 slave 主机上收集所有资源的使用率信息。 资源使用率字符串(rusage)用于指定 execution 主机上的资源预留。默认情况下,无资源预留。当运行交互式任务时可忽略。当作业级别的和队列级别的 rusage 均被定义时,作业的级别优先。

eg:

bsub -R “select[swap>=300 && mem>500] order[swap:mem] rusage[swap=300,mem=500]” job1

在被选取的主机上,为运行该作业预留 300 MB 的交换分区和 500 MB 的内存

通过rusage[mem=500]预留内存大于jobs使用内存时可避免SUSP情况

资源位置(Locality)- span[span_string]

用于指定并行作业的位置。 支持的选项: ❖ span[hosts=1]:代表分配给该作业的所有处理器必须在同一个 execution 主机上 ❖ span[ptile=n]:代表每个 execution 主机上都要分配给该作业多达 n 个处理器当此字符串(span)在作业级别和队列级别分别被定义时,作业级别的定义优先。

eg:

bsub -n 16 –R “select[ut<0.15] order[ut] span[hosts=1]” parallel_job1

用来完成该作业的所有处理器必须在同一个 execution 主机上。

bsub -n 16 –R “select[ut<0.15] order[ut] span[ptile=2]” parallel_job2

每个 execution 主机上,可以使用 2 个 CPU 来运行该作业,因此至少需要 8 个 execution主机用来完成该作业

Some other examples.

====

Job need 4 cpu slots, every slot need 100G memory (Total 4*100=400G memory).
任务属于项目test,需要4个cpu核,为每个核预占100G内存(内存默认按照cpu核分配,而不是按照job分配),总体预留400G内存。
bsub -P test -n 4 -R “rusage[mem=100000]” “COMMAND”

Job need 4 cpu slots, and the 4 slots must be on the same host.
任务属于项目test ,需要4个cpu核,且要求4个核在同一台机器上(在设置了“span[hosts=1]”的前提下,机器上总共剩余100G内存任务即可投递成功)
bsub -P test -n 4 -R “span[hosts=1] rusage[mem=100000]” “COMMAND”

Submit job into pd queue, select the hosts who have 500G+ memory, 100G+ swap, 100G+ tmp.
任务属于项目test ,需要投递到pd队列,要求投递的机器剩余内存大于500G,剩余swap大于100G,剩余tmp空间大于100G。(select能够选择当前满足条件的机器,但是不能预占机器上的资源,用rusage预占资源)
bsub -P test -q pd -R “select[mem>=500000 && swap>=100000 && tmp>=100000]” “COMMAND”

Submit job into pd queue, need 8 cpu slots, reserve 100G memory, 100G swap, select the hosts who have 100G+ tmp.
任务属于项目test ,需要投递到pd队列,需要8个cpu核,选择tmp空间大于100G的机器,预占100G内存和100Gswap。
bsub -P test -q pd -n 8 -R “rusage[mem=100000:swap=100000] select[tmp>=100000]” “COMMAND”

Submit job into pd queue, need >8 cpu slots, or  sorts by CPU 
提交任务需要按照cpu slots来提交任务
bsub -P test  -q pd -R  “rusage[mem=1024] select[slots>8]” “COMMAND”
or
bsub -P test -q pd  -R  “rusage[mem=1024] order[slots]” “COMMAND”

说明:

以上资源默认单位为MB

bsub -R “锁定资源”

发表回复

滚动到顶部