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

Re: [Condor-users] Job attribute based preemption

Yes. You may refer to PreemptingRank and CurrentRank in your MaxJobRetirementTime expression. This was never anticipated (and therefore never documented), but I just tested and confirmed that it works. Here's the expression I used in my test:

MaxJobRetirementTime = 3600 * ( MY.PreemptingRank =?= UNDEFINED || PreemptingRank < 600)

For PreemptingRank values less than 600, MaxJobRetirementTime is 3600. Otherwise, it becomes 0.


Horvátth Szabolcs wrote:

So if I can make sure that there is significant different between the rank of the currently running and the preempting job's rank than I can - although indirectly - guess the type of my job without knowing the actual classad values. And these values (PreemptingRank and CurrentRank) can be queried in a MaxJobRetirementTime expression.
Is it correct?


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.

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