Each job can specify resource requirements. Job-level resource requirements override any resource requirements specified in the remote task list.
In some cases, the queue specification sets an upper or lower bound on a resource. If you attempt to exceed that bound, your job will be rejected.
Within esub, you can get resource requirements using the LSB_SUB_RES_REQ variable, which merges multiple –R from the bsub command. If you want to modify the LSB_SUB_RES_REQ variable, you cannot use multiple –R format. Instead, use the && operator to merge them manually.
Merged RES_REQ rusage values from the job and application levels must be in the range of RESRSV_LIMIT (set in lsb.queues), or the job is rejected.
bsub -R "swp > 15 && hpux order[ut]" myjob
or
bsub -R "select[swp > 15]" -R "select[hpux] order[ut]" myjob
This runs myjob on an HP-UX host that is lightly loaded (CPU utilization) and has at least 15 MB of swap memory available.
bsub -R "select[swp > 15]" -R "select[hpux] order[r15m]" -R "order[r15m]" -R rusage[mem=100]"
-R "order[ut]" -R "same[type] -R "rusage[tmp=50:duration=60]" -R "same[model]" myjob
LSF merges the multiple -R options into one string and dispatches the job if all of the resource requirements can be met. By allowing multiple resource requirement strings and automatically merging them into one string, LSF simplifies the use of multiple layers of wrapper scripts.