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

Re: [Condor-users] Path to execute directory in submit file



On Tue, Jun 22, 2004 at 05:01:45PM -0500, Aaron Suggs wrote:
> Hi,
> 
> I'm trying to use Condor on Windows machines without a shared file 
> system. For my particular application, the input file is passed as an 
> argument to the executable.
> 
> Since the input file is transferred to a temporary scratch directory, I 
> don't know the path to pass it to the executable.
> 
> In my submit file, I've tried using $ENV(CONDOR_SCRATCH_DIR) and 
> $$ENV(CONDOR_SCRATCH_DIR) note the second '$'. But both of these yield 
> the error message:
> 
> Submitting job(s)ERROR "Can't find CONDOR_SCRATCH_DIR in environment!" 
> at line 3
> 92 in file ..\src\condor_c++_util\config.C
> 
> Could someone please tell me what am I doing wrong?
> 

The $ENV(CONDOR_SCRATCH_DIR) is being interepeted at submit time, not
execute time - and there's no CONDOR_SCRATCH_DIR from where you're submitting
a job.

> Is this the wrong way to transfer files?
> 
> FYI, I'm trying to pass a scene file, input.max, to 3D Studio Max, 
> which will produce an output0001.tif file for each frame in the scene. 
> Here's my submit file:
> 
> universe        = vanilla
> copy_to_spool = false
> 
> Executable      = c:\3dsmax6\3dsmaxcmd.exe
> Log             = log.txt
> Output          = out.txt
> Error           = err.txt
> 
> transfer_input_files = input.max
> 
> Arguments       = -outputName $ENV(CONDOR_SCRATCH_DIR)\output.tif 
> $ENV(CONDOR_SCRATCH_DIR)\input.max
> Queue
> 
> Is there another way I should be passing the input/output files? I 
> don't think I can just say "input = input.max", since the program isn't 
> using the standard input.
> 

I think your best bet is to use a batch file:

executable = render.bat

and then render.bat (fair warning, I'm not a windows person)

@echo off
echo "Running 3d max..."
c:\3dsmax6\3dsmaxcmd.exe -outputName %CONDOR_SCRATCH_DIR%\output.tif
echo "Done!"

-Erik