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

Re: [Condor-users] Job-finish requirement



On Fri, Jun 20, 2008 at 10:02 AM, Justin Ottley <justin.ottley@xxxxxxxxx> wrote:
> Hey Condor users,
>
> is there a way to specify, either in a job ClassAd, with DAGMan, or some
> other way in Condor, that a job should not run until another already queued
> job has finished?
>

Not really - is the case you're thinking of something that you wish,
after the fact,  you had really used DAGMan for? ie you submitted job
A, then realized that job B really depends on it and you should have
written a DAG for it?

If you're looking to do something else, it's probably not a good idea.
The general rule of thumb is that anything in the queue should be
considered runnable. If you want job B to not run until job A is done,
don't put job B into the queue - treat DAGMan as the queue in this
instance, and let it decide when to run jobs.

> I am aware that you can submit a set of new jobs with dependencies between
> them with DAGMan, but it isnt obvious to me how you can construct a
> constraint for a job so that it depends on the completion of a job that is
> already queued.
>

You may be able to trick DAGMan into "recovering" a DAG, where it
would think a previous instance of DAGMan submitted job A and it
should monitor it for completion before submitting job B. You would
have to write your own "rescue" DAG. I'm not off-hand sure how you
could convince DAGMan that it owned job A - it usually writes a cookie
into the job log file so it can figure out which job in the DAG maps
to which job in the logfile, so you may have to insert a line into the
log file.

> I'm also aware that in the job classad's requirements, the prefix MY is
> available to reference attributes in the same classad, and the prefix TARGET
> is available to reference attributes in the (potential) target machine's
> ClassAd. However again, it isnt obvious to me how to reference another job's
> ClassAd attributes in requirements expression.
>

You can't. ClassAds don't have access to the set of ClassAds that they're in.

-Erik

> thanks,
> -justin
>
> PS - one way that I can think of to do this is to submit jobs on hold and
> have some custom external process (submitted in the scheduler universe)
> which monitors the queue. The process could release jobs at the right time
> when other jobs are finished. however, it would be ideal if this were
> possible without such a custom process. Thanks again!
>
>
> _______________________________________________
> Condor-users mailing list
> To unsubscribe, send a message to condor-users-request@xxxxxxxxxxx with a
> subject: Unsubscribe
> You can also unsubscribe by visiting
> https://lists.cs.wisc.edu/mailman/listinfo/condor-users
>
> The archives can be found at:
> https://lists.cs.wisc.edu/archive/condor-users/
>
>