[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [HTCondor-users] Filling pool breadth-first with partitionable slots


The manual (going off 8.5.7) is extremely unclear as to the benefits of CONSUMPTION_POLICY that you describe. As it stands, the macro's definition basically looks like a startd-side rounding mechanism with no implications about scheduling efficiency.

If you get to p. 383 you see some of the implications but the name CONSUMPTION_POLICY certainly doesn't lead one to conclude "this is a knob that makes scheduling better."

If you poke hard you'll find a release note for 8.2.8 that describes the conflict between CONSUMPTION_POLICY and CLAIM_PARTITIONABLE_LEFTOVERS. Are you asserting that enabling CONSUMPTION_POLICY is the more efficient of the two options? I read the manual to mean that CLAIM_PARTITIONABLE_LEFTOVERS defaults to True in a way that enables its use out-of-the-box.

Tom Downes
Senior Scientist and Data CenterÂManager
Center for Gravitation, Cosmology and Astrophysics
University of Wisconsin-Milwaukee

On Mon, Oct 31, 2016 at 4:22 PM, Todd Tannenbaum <tannenba@xxxxxxxxxxx> wrote:

We are looking for a way to fill our pool breadth first, without the
limitation of only being able to match one job per negotiation cycle
per machine. Does HTCondor have a way to overcome this?

We are using HTCondor 8.4.7. In addition, we are also using
concurrency limits and consumption policy is enabled on all machines
in the pool.

Any help would be greatly appreciated.


Kind Regards, Jason

Hi Jason,

**Because your pool has enabled consumption policy**, I think Tom's suggestion below should enable you to setup depth-first filling and still match many jobs per negotiation cycle per machine. Please let us know how it goes, and assuming it works for you (I think it will), I will update the HOWTO recipe you referenced on the wiki.


On 10/31/2016 10:02 AM, Tom Downes wrote:
On the negotiator, I'd do something like this:


This makes the most favorable match the partitionable slot with the most
CPUs which is what I mean by "breadth first." You can obviously extend
this idea to memory, but you need to scale the memory to CPUs. For me, I
have 2GB of RAM per core so this would be

NEGOTIATOR_POST_JOB_RANK = +MY.Cpus + (MY.Memory / 2048)

Tom Downes
Senior Scientist and Data Center Manager
Center for Gravitation, Cosmology and Astrophysics
University of Wisconsin-Milwaukee

HTCondor-users mailing list
To unsubscribe, send a message to htcondor-users-request@xxxxxxx.edu with a
subject: Unsubscribe
You can also unsubscribe by visiting

The archives can be found at: