# Symphony provides three different slot allocation policies: Stacked, Balanced and Exclusive.

## Problem(Abstract)

Symphony provides three different slot allocation policies: Stacked, Balanced and Exclusive.

## Resolving the problem

Symphony provides three types of slot allocation policies for distributing workload across hosts. The Balanced policy attempts to allocate slots evenly across hosts. The Stacked policy will allocate all the free slots from one host before moving on to the next host. The Exclusive policy (only available as of Symphony 5.0) will reserve all the slots on a host for use by one consumer.

By default, Symphony uses the Stacked policy for distributing workload across hosts. Symphony will use all the slots from one host before moving on to the next host. In this policy, Symphony uses the order of hosts in the resource group to determine the order in which to use the hosts.

The Balanced policy attempts to distribute allocations evenly across all hosts in the resource group so that no one host is overloaded. It does so by allocating slots from the host in the resource group that has the most free slots first. Each time a slot is allocated from a host its number of free slots decreases so the chances that the same host will be selected for slot allocation twice in a row is low.

The Exclusive policy will reserve an entire host for one consumer. In this policy, if a consumer has a quota of 4 slots but the host has 8 slots, the remaining 4 slots on the host are reserved for this consumer; no other consumer can use these slots.

The different policies can be illustrated with the following scenario: Say we have a resource group that consists of three hosts (Host1, Host2, and Host3) with 8 slots each. There is no workload in the resource group until ConsumerA requests 5 slots. While ConsumerA is still using its 5 slots, ConsumerB requests 6 slots.

Using the Stacked policy:
ConsumerA will be allocated 5 slots from Host1. ConsumerB will be allocated the 3 remaining slots on Host1 and 3 slots from Host2. So Host1 will have 8 busy slots and Host2 will have 3 busy slots. Host3 will be idle. Hosts will be used at full capacity in this policy.

Using the Balanced policy:
ConsumerA will first get one slot each from Host1, Host2 and Host3. The next two slots will come from Host1 and Host2. So Host1 and Host2 will have 2 busy slots and Host3 will have one busy slot. When ConsumerB's workload comes in, it will initially receive one slot from Host3, as Host3 has 7 free slots, as opposed to Host1 and Host2 which each have 6 free slots. ConsumerB will then get one slot each from Host1, Host2 and Host3. Its last two slots will be allocated from Host1 and Host2, respectively. In this policy, Host1 and Host2 will have 4 busy slots and Host3 will have 3 busy slots. Workload is more evenly distributed across hosts in this policy.

Using the Exclusive policy:
ConsumerA will get 5 slots from Host1. The remaining slots on Host1 will then be reserved for it and will not be allocated to any other consumers. ConsumerB will then be allocated 6 slots from Host2 and the remaining 2 slots on Host2 will be reserved for ConsumerB. Host3 will be left idle. This policy allows consumers to reserve an entire host in case they have demand. If an application has a specific resource requirement, this policy also allows the application to reserve the host that fulfills its resource requirement.

Cross reference information
Segment Product Component Platform Version Edition
IBM Spectrum Computing IBM Spectrum Symphony
IBM Spectrum Computing IBM Spectrum Symphony

### Document information

More support for: IBM Spectrum Symphony

Software version: 4.1

Operating system(s): Platform Independent

Reference #: T1016168

Modified date: 12 June 2012