Next: 3.6 Startd Policy Configuration
Up: 3. Administrators' Manual
Previous: 3.4 Contrib Module Installation
Contents
Index
Subsections
3.5 User Priorities
Condor uses priorities to determine machine allocation for jobs.
This section details the priorities.
For accounting purposes, each user is identified by username@uid_domain.
Each user is assigned a priority value even if submitting jobs from
different machines in the same domain, or even submit from multiple machines
in the different domains.
The numerical priority value assigned to a user is inversely related to the
goodness of the priority.
A user with a numerical priority of 5 gets
more resources than a user with a numerical priority of 50.
There are two
priority values assigned to Condor users:
- Real User Priority (RUP), which measures resource usage of the
user.
- Effective User Priority (EUP), which determines the number of
resources the user can get.
This section describes these two priorities and how they affect resource
allocations in Condor.
Documentation on configuring and controlling
priorities may be found in section 3.3.16.
3.5.1 Real User Priority (RUP)
A user's RUP measures the resource usage of the user
through time.
Every user begins with a RUP of one half (0.5), and
at steady state, the RUP of a user equilibrates to the number of resources
used by that user. Therefore, if a specific user continuously uses exactly
ten resources for a long period of time, the RUP of that user stabilizes at
ten.
However, if the user decreases the number of resources used, the RUP
gets better. The rate at which the priority value decays
can be set by the macro PRIORITY_HALFLIFE , a time period
defined in seconds. Intuitively, if the PRIORITY_HALFLIFE in a pool
is set to 86400 (one day), and if a user whose RUP was 10 removes all his
jobs, the user's RUP would be 5 one day later, 2.5 two days later,
and so on.
3.5.2 Effective User Priority (EUP)
The effective user priority (EUP) of a user is used to determine
how many resources that user may receive.
The EUP is linearly related to the RUP
by a priority factor which may be defined on a per-user basis.
Unless otherwise configured, the priority factor for all users is 1.0,
and so the EUP is the same as the the RUP.
However, if desired, the priority factors of
specific users (such as remote submitters) can be increased so that
others are served preferentially.
The number of resources that a user may receive is inversely related
to the ratio between the EUPs of submitting users.
Therefore user A with EUP=5 will receive
twice as many resources as user B with EUP=10 and four times as many
resources as user C with EUP=20.
However, if A does not use the full number
of allocated resources,
the available resources are repartitioned and distributed among
remaining users according to the inverse ratio rule.
Condor supplies mechanisms to directly support two policies in which EUP may
be useful:
- Nice users
- A job may be submitted with the parameter
nice_user set to TRUE in the submit command file.
A nice user job gets its RUP boosted by the
NICE_USER_PRIO_FACTOR priority factor specified in the
configuration file, leading to a (usually very large) EUP.
This corresponds to a low priority for resources.
These jobs are therefore equivalent to Unix background jobs,
which use resources not used by other Condor users.
- Remote Users
- The flocking feature of Condor (see
section 5.2) allows the condor_ schedd to
submit to more than one pool.
In addition, the submit-only feature allows a user to run a
condor_ schedd that is submitting jobs into another pool.
In such situations, submitters from other domains
can submit to the local pool.
It is often desirable to have Condor treat local users
preferentially over these remote users.
If configured, Condor will boost the RUPs of remote users by
REMOTE_PRIO_FACTOR
specified in the configuration file,
thereby lowering their priority for resources.
The priority boost factors for individual users can be set with the
setfactor option of condor_ userprio.
Details may be found in the condor_ submit manual page
on page
.
3.5.3 Priorities and Preemption
Priorities are used to ensure that users get their fair share of resources.
The priority values are used at allocation time.
In addition, Condor preempts machines (by performing a checkpoint and
vacate) and reallocates them to maintain priority standing.
To ensure that preemptions do not lead to thrashing,
a PREEMPTION_REQUIREMENTS expression is defined to specify the
conditions that must be met for a preemption to occur.
It is usually defined to deny preemption if a current running job
has been running for a relatively short period of time.
This effectively limits the number of preemptions per resource per time
interval.
This section may be skipped if the reader so feels, but for the curious,
here is Condor's priority calculation algorithm.
The RUP of a user u at time t,
, is calculated
every time interval
using the formula
where
is the number of resources used by user u at time t,
and
. h is the half life period set by
PRIORITY_HALFLIFE .
The EUP of user u at time t,
is calculated by
where f(u,t) is the priority boost factor for user u at time t.
As mentioned previously, the RUP calculation is designed so that at steady
state, each user's RUP stabilizes at the number of resources used by that user.
The definition of
ensures that the calculation of
can be
calculated over non-uniform time intervals
without affecting the
calculation. The time interval
varies due to events internal to
the system, but Condor guarantees that unless the central manager machine is
down, no matches will be unaccounted for due to this variance.
Next: 3.6 Startd Policy Configuration
Up: 3. Administrators' Manual
Previous: 3.4 Contrib Module Installation
Contents
Index
condor-admin@cs.wisc.edu