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

Re: [Condor-users] Job attribute based preemption

Ah. You want the machine to provide a long retirement time except when the job is being preempted by certain other types of jobs? There is currently no way to look at arbitrary attributes of the preempting job from the MaxJobRetirementTime expression. However, you can compare PreemptingRank and CurrentRank or PreemptingOwner and Owner. Example:

MaxJobRetirementTime = (...) * (isUndefined(PreemptingRank) || PreemptingRank <= CurrentRank)

I haven't tested that, but I think that should set MaxJobRetirementTime to 0 if PreemptingRank is greater than CurrentRank. You could be more specific in which types of jobs are allowed to be quickly preempted, but, since you can't access attributes of the preempting job, you can't be more specific in terms of which type of job is allowed to quickly preempt, other than, as I mentioned before, not letting them pass through the START expression in the first place.


Horvátth Szabolcs wrote:

Hi Dan,

But I do have to lower the MaxJobRetirementTime if I want to make the preemption instantaneous, don't I? If I only modify the start expression I get the preemption happening (actually almost all of my running jobs are already preempted because of the rank expression we use) but it is not instant.


Dan Bradley wrote:
MaxJobRetirementTime is useful for controlling how long the existing job is allowed to run once it is preempted. To control whether the existing job gets preempted or not, I would suggest using a combination of RANK and START expressions. For example, the START expression can look at attributes of the existing job (published into the machine ClassAd via STARTD_JOB_EXPRS) to decide whether it is acceptable to preempt the existing job.


Condor-users mailing list
To unsubscribe, send a message to condor-users-request@xxxxxxxxxxx with a
subject: Unsubscribe
You can also unsubscribe by visiting

The archives can be found at either