Parallel jobs run on multiple hosts. If your cluster has heterogeneous hosts some processes from a parallel job may for example, run on Solaris and some on SGI IRIX. However, for performance reasons you may want all processes of a job to run on the same type of host instead of having some processes run on one type of host and others on another type of host.
You can use the same section in the resource requirement string to indicate to LSF that processes are to run on one type or model of host. You can also use a custom resource to define the criteria for homogeneous hosts.
Allocate 4 processors on the same host type—either SGI IRIX, or Solaris 7, but not both.
Allocate 6 processors on any host type or model as long as all the processors are on the same host type and model.
bsub -n 12 -R "select[type==any && (hgconnect==hg1 || hgconnect==hg2 || hgconnect==hg3)] same[hgconnect:type]" myjob
For performance reasons, you want to have LSF allocate 12 processors on hosts in high-speed connection group hg1, hg2, or hg3, but not across hosts in hg1, hg2 or hg3 at the same time. You also want hosts that are chosen to be of the same host type.
This example reflects a network in which network connections among hosts in the same group are high-speed, and network connections between host groups are low-speed.
Begin ResourceRESOURCENAME TYPE INTERVAL INCREASING RELEASE DESCRIPTIONhgconnect STRING () () () (OS release)...End Resource
Begin ResourceMapRESOURCENAME LOCATIONhgconnect (hg1@[hostA hostB] hg2@[hostD hostE] hg3@[hostF hostG hostX])End ResourceMap
Begin QueueQUEUE_NAME = My_testPRIORITY = 30NICE = 20 RES_REQ = "select[mem > 1000 && type==any && (hgconnect==hg1 || hgconnect==hg2 || hgconnect=hg3)]same[hgconnect:type]"DESCRIPTION = either hg1 or hg2 or hg3End Queue