Compute units

Compute units are similar to host groups, with the added feature of granularity allowing the construction of clusterwide structures that mimic network architecture. Job scheduling using compute unit resource requirements optimizes job placement based on the underlying system architecture, minimizing communications bottlenecks. Compute units are especially useful when running communication-intensive parallel jobs spanning several hosts.

Resource requirement strings can specify compute units requirements such as running a job exclusively (excl), spreading a job evenly over multiple compute units (balance), or choosing compute units based on other criteria.

Compute unit configuration

To enforce consistency, compute unit configuration has the following requirements:

  • Hosts and host groups appear in the finest granularity compute unit type, and nowhere else.

  • Hosts appear in the membership list of at most one compute unit of the finest granularity.

  • All compute units of the same type have the same type of compute units (or hosts) as members.

Tip:

Configure each individual host as a compute unit to use the compute unit features for host level job allocation.

Where to use compute units

LSF compute units can be used in defining the following parameters in LSF configuration files:

  • EXCLUSIVE in lsb.queues for the compute unit type allowed for the queue.

  • HOSTS in lsb.queues for the hosts on which jobs from this queue can be run.

  • RES_REQ in lsb.queues for queue compute unit resource requirements.

  • RES_REQ in lsb.applications for application profile compute unit resource requirements.