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

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
thought about).

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:
http://www.cs.wisc.edu/condor/manual/v7.5/2_10DAGMan_Applications.html#SECTION003106700000000000000

You might also be interested in this previous condor-users thread:
https://lists.cs.wisc.edu/archive/condor-users/2009-December/msg00084.shtml

(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.)

Kent Wenger
Condor Team