Parallel processes within rtcontrib

Hi all,

Does someone has an experience with parallel rtrace processes execution
within rtcontrib program?
This is set with -n option in rtcontrib, which in child rtrace processes
uses -PP option.

It works perfectly in Linux, but I couldn't make it work in Windows.

For command like this:
rtcontrib -n 2 -I+ -V- -h- -b tbin -o outfile.txt -m sky -f tregenza.cal
@param.opt octree.oct < points.txt

I've got errors:
bin/rtrace: fatal - command line error at '-PP'
rtcontrib: system - select call error in wait_rproc()
bin/rtrace: fatal - command line error at '-PP'

If started without -n option rtcontrib works without problems in both OS.

Since in Windows I'm using Francesco's MinGW Radiance binaries, I suspected
that my binaries aren't up to date.
I downloaded current Radiance version from CVS and rebuild all programs with
scons in Windows.
After that error remains the same, and -PP option in rtrace is not
recognized.

Greg suggested that is could be a problem with file locking, but no idea how
to solve this.
Maybe some variables/flags should be set during compilation on Windows!?

Any suggestions are welcome,
Marija

Marija

It works perfectly in Linux, but I couldn't make it work in Windows.

For command like this:
rtcontrib -n 2 -I+ -V- -h- -b tbin -o outfile.txt -m sky -f tregenza.cal
@param.opt octree.oct< points.txt

I've got errors:
bin/rtrace: fatal - command line error at '-PP'
rtcontrib: system - select call error in wait_rproc()
bin/rtrace: fatal - command line error at '-PP'

Greg suggested that is could be a problem with file locking, but no idea how
to solve this.
Maybe some variables/flags should be set during compilation on Windows!?

I recently looked into various ways of running Radiance/LEARNIX on a Windows machine. Francesco's web site was down (fixed now), so I had to compile Cygwin Radiance myself. I did not try mingw, but believe it to be somewhat similar to cygwin in performance.

When running Mark's benchmark, I encountered the same problem that you are describing with rpiece. Trying to figure out why this wouldn't work, I played around with the bench4 makefile, and came to the same conclusion that Greg suggested. The syncfile which coordinates the different rtrace/rpict processes is opened multiple times, each process reading from and writing to the same file.

I believe it to be a 'feature' of the Windows OS that users are protected from themselves at all cost, so I'd be surprised if there was a mechanism that would allow you to disable this file-locking. Having said that, I am no expert in such matters.

If you have a multi-core machine and really need the extra speed, I suggest you look into running Radiance on LINUX inside a virtual machine. Sun's VirtualBox is very good and open source. It is comparable in speed to cygwin Radiance, but will utilise all cores/processors. You can double the speed again by running LINUX natively, to which there are a number of different approaches.

To get an idea about VirtualBox under Windows and the speed increase that you can expect, please see 'Running LEARNIX' which is available from the LEARNIX documentation page:

http://luminance.londonmet.ac.uk/learnix/docs.shtml

I know this doesn't really answer your question, but might provide an acceptable work-around for your problem.

Axel

Hi Axel,

It good to know that someone else had the same problem, even if we don't
have the solution (at least, for now).
I know that Radiance is much faster and easier to use in Linux, since I'm
usually using it there.
I had an idea to include in some Python scripts in Windows rtcontib
calculation, and was exploring options with parallel prosesses. Even without
them, rtcontrib works fast and good enough in Windows.

Thanks again,
Marija

ยทยทยท

On Sat, Dec 5, 2009 at 3:45 PM, Axel Jacobs <[email protected]> wrote:

I recently looked into various ways of running Radiance/LEARNIX on a
Windows machine. Francesco's web site was down (fixed now), so I had to
compile Cygwin Radiance myself. I did not try mingw, but believe it to be
somewhat similar to cygwin in performance.

When running Mark's benchmark, I encountered the same problem that you are
describing with rpiece. Trying to figure out why this wouldn't work, I
played around with the bench4 makefile, and came to the same conclusion that
Greg suggested. The syncfile which coordinates the different rtrace/rpict
processes is opened multiple times, each process reading from and writing to
the same file.

I believe it to be a 'feature' of the Windows OS that users are protected
from themselves at all cost, so I'd be surprised if there was a mechanism
that would allow you to disable this file-locking. Having said that, I am no
expert in such matters.

If you have a multi-core machine and really need the extra speed, I suggest
you look into running Radiance on LINUX inside a virtual machine. Sun's
VirtualBox is very good and open source. It is comparable in speed to cygwin
Radiance, but will utilise all cores/processors. You can double the speed
again by running LINUX natively, to which there are a number of different
approaches.

To get an idea about VirtualBox under Windows and the speed increase that
you can expect, please see 'Running LEARNIX' which is available from the
LEARNIX documentation page:

http://luminance.londonmet.ac.uk/learnix/docs.shtml

I know this doesn't really answer your question, but might provide an
acceptable work-around for your problem.

Axel