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

Re: [HTCondor-users] Doubt regarding job priorities on distributed scheduling



I have read that job priorities are constrained per scheduler, So If I have
distributed scheduling how can I ensure that the job priorities are still
obeyed at user level? i.e. Is there any way to control the queue that the
negotiator maintains (or) any way to convey the negotiator to pick jobs
from the Scheduler which has higher priority jobs with any macro?

	The negotiation algorithm is described in the manual:

https://htcondor.readthedocs.io/en/latest/users-manual/managing-a-job.html#changing-the-priority-of-jobs

If I understand the algorithm correctly:

The negotiator _always_ goes in user (accounting principal) priority order. Let's assume that you submitted as the same user (and authenticated the same way) on both schedds, and that there are no other users with jobs in the queue on either schedd, just for simplicity.

Given a user with jobs in more than one queue, the negotiator _always_ completes negotiation for that user's job in a single schedd before moving on to the next. So you definitely can't have a queue with priority 10 and 30 jobs and another queue with priority 20 and 40 jobs and expect them to be scheduled in priority order (any resources left over after the higher-priority jobs are scheduled on schedd A will go to scheduling lower-priority jobs on schedd A).

_Which_ schedd gets contacted first is currently not specified, which I suspect means hashtable order. AFAICT, HTCondor doesn't currently support specifying this order, so you're out of luck with respect to simple solutions.

If you want to get _really_ exotic, however, you could try playing games with NEGOTIATOR_JOB_CONSTRAINT and running multiple negotiators, which each negotiator looks at a different subset of user job priorities.

- ToddM