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

Re: [Condor-users] Forbid SlotID use in submit files?



On Mon, Apr 20, 2009 at 08:08:51AM -0500, Matthew Farrellee wrote:
> > I'd like to stop users from running jobs containing SlotID Requirements on
> > most pool nodes.
> > Would a START expression of the form 
> > 	START = (TARGET.SlotID =?= UNDEFINED)
> > do the trick? (Did I get the idea of TARGET wrong?)
> > 
> > Thanks,
> >  Steffen
> 
> If jobs do have a SlotID, you're golden. If not, and jobs only
> references the SlotID in their Requirements expressions, you have the
> right idea with TARGET but that specific use wouldn't work.

Could you please explain why?

(Would something along the lines of 
	((TARGET.SlotID =!= 1) && (TARGET.SlotID =!= 2)... ) == False)
make a significant difference?
(And, BTW, is there no way to logically negate, except comparing to False?)

> You could use regexp instead, e.g. START = regexp(".*SlotID.*",
> Requirements), but that might get slow.

Probably I can waste a second when I can save a couple of hours of a machine
which would be used by mistake otherwise.

> If you really just want to prevent the old jobs from running, an
> alternative would be to flag all your old jobs as such, e.g.
> condor_qedit -const 'regexp(".*SlotID.*", Requirements)' FlaggedOld
> TRUE. Then your START could check for TARGET.FlaggedOld.

This would require constant vigilance - what I need is something automatic.

> Given that you can flag jobs with the old requirements expression, you
> could look into just rewriting the expressions entirely with condor_qedit.

But condor_qedit needs jobs already in the queue, and it would be a pain to
throw them out of their slots again.

I'd rather like them not to enter Running state at all - which is why RANKs
wouldn't do...


Thanks,
 Steffen