Priorities in HTCondor
HTCondor is continuously aware of the number of available machines and calculates the share of them that which each user should be allocated. The fair-share for each group is calculated based on quota and subsequently, HTCondor calculates the users' priorities that they belong to the same group.
For instance, if there is a user with a priority of 5, has higher priority than a user with a priority of 10 and will get twice as many machines.
According to the number of resources that a user is using, the priority changes. Specifically, if a user uses greater number of machines than the priority, the user's priority will be increased which means that the priority will be worst and will get less machines. On the other hand, if the user uses lower number of machines than the priority, will get more machines and the priority will be decreased.
It is important all users to have a fair-share access. HTCondor controls the priorities by using the variable PRIORITY_HALFLIFE, an exponential half-life value. For instance, if a user has priority 50 and uses 50 machines, then if the user removes the jobs, after N days or hours (based on the value of PRIORITY_HALFLIFE ), the value of the priority will be decreased to half. Full details for priorities in HTCondor can be found in the HTCondor Manual.
Useful information about the values of config Quota, Effective priority, Resources in use, etc. can be extracted by executing :
condor_userprio |grep username
To sum up, the fair-share balancing is only one of the factors. The matching of the job with the worker node is related also to the amount of available resources, your job's requirements, wn's requirements, etc.