Description of problem: There are two new parameters HFS_ROUND_ROBIN_RATE and HFS_MAX_ALLOCATION_ROUNDS in condor, which are not documented. Also some examples of usage will be very helpful. (for more information see bug 644904) > What do variables HFS_ROUND_ROBIN_RATE and HFS_MAX_ALLOCATION_ROUNDS do? HFS_MAX_ALLOCATION_ROUNDS specifies how many allocation rounds are allowed. Allocation rounds are the iterations that may occur if a group does not get all the slots it was allocated due to rejection. If the negotiation loop fails to fill the quota for one or more groups, it may take the unused quota and attempt to allocate it to other groups that may be able to use it. This variable defaults to (1), which is the traditional behavior of a single negotiation attempt. It has a minimum of (1). Maximum is INT_MAX. HFS_ROUND_ROBIN_RATE specifies the increment rate of the negotiation round-robin loop that can be used to solve the overlapping-effective-pool problem. It defaults to traditional behavior of "Attempt to negotiate for everything in one iteration." If it is set to its minimum value (1.0), it will give maximum preservation of allocation ratios, but will require possibly many iterations. It can be increased to some value > 1.0 to reduce iterations (and log output), with the possible consequence of reduced adherence to allocated ratios.
Rewrite for improved clarity: HFS_MAX_ALLOCATION_ROUNDS specifies how many allocation rounds are allowed. If the negotiation loop fails to fill the quota for one or more groups due to rejection, it may take that unused quota and attempt to allocate it to other groups that might be able to use it. This re-allocation requires one or more additional iterations, referred to as allocation rounds. HFS_MAX_ALLOCATION_ROUNDS defaults to (1), which is the traditional behavior of a single negotiation attempt. It has a minimum of (1), and maximum of INT_MAX. HFS_ROUND_ROBIN_RATE specifies an increment rate for the negotiation round-robin loop, which may be used to mitigate overlapping-effective-pool scenarios. An overlapping effective pool occurs when two or more jobs include slot requirements that limit their potential slots to overlapping subsets of the larger pool. In such a scenario, traditional Negotiator behavior may result in jobs from one accounting group being given the entire subset, and jobs from subsequent groups being starved. Such starvation scenarios may be mitigated by setting HFS_ROUND_ROBIN_RATE to a small value such as (1.0), which will cause the Negotiator to use a round robin strategy in negotiating slots from the available accounting groups. This will prevent any one accounting group from being allocated all slots from an overlapping effective pool and starving other groups. HFS_ROUND_ROBIN_RATE defaults to traditional behavior: attempt to negotiate for everything in one iteration. If it is set to its minimum value (1.0), it will give minimum starvation and maximum preservation of allocation ratios inside overlapping effective pools, but may require many iterations. It can be increased to some value > 1.0 to reduce iterations (and log output), with the possible consequence of increased starvation of some accounting groups. (FYI -- these configuration variables would be listed under Negotiator parameters, and/or the HFS section of the user guide)
By popular request, HFS_MAX_ALLOCATION_ROUNDS now defaults to (3). So, this doc paragraph sentence: "HFS_MAX_ALLOCATION_ROUNDS defaults to (1), which is the traditional behavior of a single negotiation attempt. It has a minimum of (1), and maximum of INT_MAX." Should be replaced with: "HFS_MAX_ALLOCATION_ROUNDS defaults to (3). It has a minimum of (1), which is traditional Negotiator behavior of a single attempt at negotiation, and a maximum of INT_MAX."
Change made in revision 7.14, build: Red_Hat_Enterprise_MRG-Grid_User_Guide-1.3-web-en-US-7-14.el5 Code snippets: <section id="sect-Grid_User_Guide-Configuration_options-condor_negotiator_Configuration_File_Macros"> <title><command>condor_negotiator</command> Configuration File Macros</title> <variablelist> <varlistentry> <term> <command>HFS_MAX_ALLOCATION_ROUNDS</command></term> <listitem> <para> Specifies how many allocation rounds are allowed. If the negotiation loop fails to fill the quota for one or more groups due to rejection, it may take that unused quota and attempt to allocate it to other groups that might be able to use it. This re-allocation requires one or more additional iterations, referred to as allocation rounds. </para> <para> <command>HFS_MAX_ALLOCATION_ROUNDS</command> defaults to (3). It has a minimum of (1), which is the traditional behavior of a single attempt at negotiation, and a maximum of <parameter>INT_MAX<parameter>. </para> </listitem> </varlistentry> <varlistentry> <term><command>HFS_ROUND_ROBIN_RATE</command></term> <listitem> <para> Specifies an increment rate for the negotiation round-robin loop, which may be used to mitigate overlapping-effective-pool scenarios. An overlapping effective pool occurs when two or more jobs include slot requirements that limit their potential slots to overlapping subsets of the larger pool. In such a scenario, traditional negotiator behavior may result in jobs from one accounting group being given the entire subset, and jobs from subsequent groups being starved. Such starvation scenarios may be mitigated by setting <command>HFS_ROUND_ROBIN_RATE</command> to a small value such as (1.0), which will cause the negotiator to use a round robin strategy in negotiating slots from the available accounting groups. This will prevent any single accounting group from being allocated all the slots from an overlapping effective pool and starving other groups. </para> <para> <command>HFS_ROUND_ROBIN_RATE</command> defaults to traditional behavior where it attempts to negotiate for everything in one iteration. If it is set to its minimum value (1.0), it will give minimum starvation and maximum preservation of allocation ratios inside overlapping effective pools, but may require many iterations. It can be increased to some value > 1.0 to reduce iterations (and log output), with the possible consequence of increased starvation of some accounting groups. </para> </listitem> </varlistentry> </variablelist> </section>
New section 'condor_negotiator Configuration File Macros' with both HFS_MAX_ALLOCATION_ROUNDS and HFS_ROUND_ROBIN_RATE parameters was added to Grid User Guide. >>> VERIFIED