[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Condor-users] DAGman: array dependencies, dynamic DAGs
- Date: Fri, 22 Jan 2010 15:28:43 -0600 (CST)
- From: "R. Kent Wenger" <wenger@xxxxxxxxxxx>
- Subject: Re: [Condor-users] DAGman: array dependencies, dynamic DAGs
On Fri, 22 Jan 2010, Mark Visser wrote:
First, does DAGman have a way to declare dependencies between clusters of
equal numbers of jobs, but have the dependencies actually be between jobs?
Sun Grid Engine calls this an "array dependency". For example, given cluster
A of 100 jobs, and cluster B of 100 jobs, I want to define a relationship
between A and B such that:
B.0 depends on A.0
B.1 depends on A.1
B.2 depends on A.2
B.99 depends on A.99
This obviously requires that either A and B have the same number of jobs, or
that the dependencies between A's jobs and B's jobs are explicitly described.
At least right now, there's no way to do what you want without making
A.0, A.1, A.2, B.0, B.1, B.2, etc. separate nodes in the DAG (in other
words, separate invocations of condor_submit).
Second question: Is there any way to add or modify dependencies after a DAG
is submitted? For example, I submit long-running cluster A, then several
hours later I want to submit cluster B, such that B depends on the successful
completion of A. Does DAGman re-read its dag file, or is it read only once?
Right now, the DAG structure is defined at startup, and you can't change
it (although being able to dynamically change the DAG is something we've
However, depending on how your DAG is structured, you may be able to work
around this somewhat by splitting your DAG up into a number of sub-DAGs.
(A node in one DAG can be another entire DAG.) When you do this, the
"real" reading of each sub-DAG file happens at the point in the
higher-level DAG where that particular lower-level DAG is run. (There's
a "preliminary" reading of the lower-level DAG at submit time, but if you
change the DAG file later, the changed version will be what's actually
run.) So one node in the top-level DAG (or in an earlier lower-level DAG)
could re-write the sub-DAG file. For more information, see this section
of the manual:
You might also be interested in this previous condor-users thread:
(By the way, we're planning to eliminate the "preliminary" reading of the
lower-level DAG file soon, so then you could create the lower-level DAG
file at any time before that DAG is actually run.)