Load balancing is generally defined as the incorporation of resource load information into scheduling decisions. Moab supports load balancing in a number of ways allowing sites to use node load information to both determine resource availability and to control job resource allocation.
Moab only schedules jobs onto available nodes. Using Moab's node availability policies, a site can specify exactly what criteria determine the node's availability. For load balancing purposes, site administrators may want to configure availability criteria for processors, memory, and swap. Various settings can enable over-committing resources if desired while others can constrain nodes to only accept jobs if resources exist to meet the maximum needs of all concurrent job requests.
The second major aspect of load balancing has to do with the selection of resources for new jobs. With Moab, load information can be incorporated into the node allocation decision by using the PRIORITY node allocation policy. This policy allows specification of which aspects of a node's configuration contribute to its allocation priority. For load balancing purposes, a site would want to favor nodes with the most available processors and the lowest load and job count. The node allocation priority function is set using the PRIORITYF attribute of the NODECFG parameter as shown in the following example:
NODEALLOCATIONPOLICY PRIORITY NODECFG[DEFAULT] PRIORITYF='10 * APROCS - LOAD - JOBCOUNT'
Other node aspects that may be of value in configuring load-balancing based node allocation include SPEED and CPROCS.