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

Re: [Condor-users] WORKAROUND: Compiling povray for the standard universe



I have solved my own problem and wanted to share the
solution.  The following is pretty specific to povray
and not Condor, but it might help someone else in the
future who searches this list with the right keywords.

I originally wanted to compile the 3d renderer povray
using the condor_compile tools to take advantage of
standard universe features.  I now realize, however,
that povray has checkpointing features that can easily
be used in the vanilla universe.

Step 0:  Before submitting the job, clean all previous
povray output files that would normally just be
overwritten.  Example:

[host]$  rm *.png

Step 1:  In a submit file add the lines:

on_exit_remove = (ExitBySignal == False) && (ExitCode
== 0)

# if one doesn't use a shared file system, then
# one *may* want to uncomment the next line.  This is
untested.
# when_to_transfer_output = ON_EXIT_OR_EVICT

Step 2:  In the arguments line, one should add the +C
argument.  This tells povray to continue an
interrupted render by analyzing the output file and
figuring out where to begin. See the povray online
docs for details.  (It's more complicated than just
knowing what pixel a job exited on.  For effects like
radiocity and anti-aliasing, the pixels are *not*
independent.  The +C option seems to take this into
account and re-does the necessary pixels when
continuing a job)

Step 3:  Make sure if queueing a bunch of jobs that
each one ends up with a unique name.  See example
below.

Outcome:  These set of directions set up Condor to
re-queue any povray execution that terminates with
anything but a normal code 0. These jobs won't start
from scratch, however, because we've told povray to
look for a half-finished render output and to pick up
where it left off.  The first time through, when no
output file exists, the +C argument just causes to
create an output file and start at the top, as usual.

I've tested this once under our particular setup and
it seems to work.  The submit file for an animation
split up frame by frame looks like:

## Test of distributed animation of Povray files
universe        = vanilla
executable      = /path/to/povray
log             = povray.log
output          = outfiles/povray.out$(Process)
error           = outfiles/povray.err$(Process)

get_env         = True

#when_to_transfer_output = ON_EXIT_OR_EVICT

on_exit_remove = (ExitBySignal == False) && (ExitCode
== 0)

Arguments       = scene4.ini +Iscene4.pov +W1024 +H768
-D +C Subset_Start_Frame=$(Process)
Subset_End_Frame=$(Process)
Queue 5

Cheers,
-js

> > Jeff Sherman wrote:
> > > Has anyone succeeded in compiling povray for
> > Condor's
> > > standard universe?  I'm on a system that does
> not
> > > allow commands like "condor_compile make ..." so
> > > instead I've tried redefining CC, CPP, LD, etc.
> to
> > the
> > > "condor_compile ..."  equivalents both through
> the
> > > ./configure utility and environment variables. 
> > The
> > > final linking fails.  Any hints?
> > >
> > > Thanks,
> > > -js



__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com