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

Re: [Condor-users] Changing a working directory for a DAG within a DAG?

Thank you for you reply and offer to diagnose things.

Well, actually I think I've resolved the problem by modifying
the inner DAG description files like :

# param[n]/inner.dag
# [n] = 1, 2, 3 ..
Job Pre[n] param[n]/preparation.submit
Job Sim[n] param[n]/simulation.submit


Previously I had used the same description for all
param[n]/inner.dag , but I've added 'param[n]/' assuming that
DAGMan does not change the working directory to param[n]/ .

( I use the previous release version of CONDOR, 6.6.11. )

R. Kent Wenger wrote:

Sorry for the long delay in responding...

On Fri, 7 Jul 2006, Masakatsu Ito wrote:

I am trying to use a DAG within a DAG to perform
a number of simulations which is easier to construct
hierarchically. I have to put these simulation outputs
into hierarchical directory structure, which a post (analysis)
script requires. But the problem is that I've failed to put
them into the directory structure, because I cannot get
condor_dagman to change a working directory.

Basically I've tried to follow the way in the thread
which suggested using -UseDagDir . But this thread
is not completely clear for me to follow.

Yes, unfortunately -UseDagDir is somewhat complicated to explain.

My goal is to sort the simulation outputs into the directories
param1, param2, ... . The whole directory tree should be
like :

--+-- outer.dag
+-- param1 -+-- inner.dag
| +-- preparation.submit
| +-- simulation.submit
| +-- preparation.inp
| +-- ( simulation.out )
+-- param2 -+-- inner.dag
| +-- preparation.submit
| +-- simulation.submit
| +-- preparation.inp
| +-- ( simulation.out )

I used two nested DAGs. The inner DAG describes the
dependency between preparation and simulation programs.

# inner.dag
Job Pre preparation.submit
Job Sim simulation.submit


I wrote the outer DAG description file to sort
the simulation results into the directories.

# outer.dag
Job Param1 param1/inner.dag.condor.sub
Job Param2 param2/inner.dag.condor.sub

I created these "inner.dag.condor.sub" using :

% condor_submit_dag -no_submit -UseDagDir param1/inner.dag

as the thread

But, for my case, -UseDagDir does not cause DAGMan to change
a working directory when invoking condor_submit_dag.
After I submitted the outer DAG like

% condor_submit_dag outer.dag

the job of the inner DAG, Pre, failed because
the preparation program was not able to find
its input, preparation.inp . Moreover, the log file of
this job was put into the parent directory.
It seems that despite of using -UseDagDir, DAGMan kept
using the parent directory, which I'm trying to avoid.

Probably I miss some points in the thread.
So I'd be very grateful if anyone gives me any hint,
advice, or comments.

Hmm -- I made a test case that's essentially exactly like your case, and
it all worked fine.

Could you send all of the condor.sub files, and also the submit files
for the node jobs?  That might help diagnose things.

Kent Wenger
Condor Team
Masakatsu Ito Nanotechnology Research Center