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

Re: [Condor-users] priority groups and preemption



On 4/25/07, Jonathan D. Proulx <jon@xxxxxxxxxxxxx> wrote:
On Wed, Apr 25, 2007 at 03:56:53PM +0100, Matt Hope wrote:

:Higher RANK (as in startd rank) currently guarantees preemption.

Ah, I was confused because there was nothing about RANK in the PEEMPT
macro.

I should probably RTFM on thsi one, but do jobs that have been
preempted previously have any protection against being preempted
again?

Not by default no

I'm wondering how to protect long running jobs (in the vanilla
universe) from being preempted and requeued in an infinite loop.
Presumably this is considered and likely a bit more reading will clear
it up...

Note that the UWSC macros used by default for several
startd/negotiation settings (notably PREEMPTION_RANK which governs
picking a job from a list of possible preemption candidates) are not
well suited to a predominantly vanilla universe workload.

The default is to preempt those jobs which have run the *longest*
(which in a checkpoint aware world would be fine since it would avoid
a single job 'dancing' over the execute nodes never getting any
progress) but that is exactl;y what you probably don't want if you are
running in vanilla mode.

here is a vanilla only world example for a dedicated calc farm machine:

# the machine is decated - no need for any suspend or machine sourced preempt
WANT_SUSPEND = FALSE
WANT_VACATE = FALSE
SUSPEND = FALSE
CONTINUE = FALSE
PREEMPT = FALSE

##  When to instantaneously kill a preempting job
##  (e.g. if a job is in the pre-empting stage for too long)
KILL = TRUE

# prefer to kick the shorter jobs unless there is a large differential
in the users priority
PREEMPTION_RANK = (EnteredCurrentState - CurrentRank) + RemoteUserPrio
PERIODIC_CHECKPOINT	= FALSE

PREEMPTION_REQUIREMENTS	= FALSE

# RANK can be whatever you want allowing for the fact that it always
triggers a preemption

# I am explicitly happy with the UWCS values for PRE/POST RANK
NEGOTIATOR_PRE_JOB_RANK = $(UWCS_NEGOTIATOR_PRE_JOB_RANK)
NEGOTIATOR_POST_JOB_RANK = $(UWCS_NEGOTIATOR_POST_JOB_RANK)

Hope these snippets help

Matt