Hi All,
Thanks for all your help.
I confirm
NEGOTIATOR_POST_JOB_RANK = +MY.Cpus
indeed results in breadth-first-fill of our HTCondor pool, which is exactly what I was looking for.
There is just one caveat: HTCondor 8.4.7 has a default NEGOTIATOR_PRE_JOB_RANK of:
(10000000 * My.Rank) + (1000000 * (RemoteOwner =?= UNDEFINED)) - (100000 * Cpus) - Memory
If I am not mistaken this causes a depth-first-fill. So in my condor_config I have changed it:
NEGOTIATOR_PRE_JOB_RANK = 0
NEGOTIATOR_POST_JOB_RANK = +MY.Cpus
I can also confirm the NEGOTIATOR_PRE_JOB_RANK and NEGOTIATOR_POST_JOB_RANK work well with CONSUMPTION_POLICY and concurrency limits. I have these in my condor_config:
NUM_SLOTS = 1
NUM_SLOTS_TYPE_1 = 1
SLOT_TYPE_1 = cpus=100%
SLOT_TYPE_1_PARTITIONABLE = true
CONSUMPTION_POLICY = True
NetworkBandwidth_LIMIT = 1000
NEGOTIATOR_PRE_JOB_RANK = 0
NEGOTIATOR_POST_JOB_RANK = +MY.Cpus
And the overall effect is exactly what I want: breadth-first-fill based on CPU with pool-wide NetworkBandwith resource of 1000 units.
Thanks again for everyoneâs input.
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.
regards,
Todd
On 10/31/2016 10:02 AM, Tom Downes wrote:
PRIVACY AND CONFIDENTIALITY NOTICE |