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

Re: [HTCondor-users] Setting preemption based on submit boxes



MAXJOBRUNTIME=24 * $(HOUR)
RANK = ifthenelse($(teamname), ifthenelse($(teamname) == "MC", $(teamname)
* 10, 0), 0)

RANK is a ClassAd expression. A $(substitution) will use values from the configuration file as it was at configuration time, not from the ClassAd(s) in question. So:

RANK = ifthenelse( teamname =?= "MC", 1000, 0 )

will set the rank to 1000 if the teamname is equal to MC, and 0 otherwise (including if teamname is undefined). Since each MC job has the same rank as every other MC job, and a rank higher than everything else, I believe that will prevent rank-based preemption.

PREEMPTION_REQUIREMENT = ifthenelse($teamname != "MC", totaljobruntime > 2
* $(HOUR), 0)

	Likewise:

PREEMPTION_REQUIREMENTS = ifthenelse(teamname =?= "MC", false, $(AFTER_TWO_HOURS) )

will prevent a job marked as MC from being preempted by user priority, and
allow it if AFTER_TWO_HOURS is true.

	I don't know off the top of my head how to write AFTER_TWO_HOURS.

  1. MC jobs are never preempted.
  2. MC jobs preempt any other team's job after N hours.
  3. Otherwise, jobs are allowed to run until the pool maximum of 24 hours.

Would above logic make sense according to requirement?

	There's no 'N' in the RANK expression you provided.

- ToddM