The PVMPOV project at Sourceforge is now hosting the latest PVMPOV patches. There are patches for the new POV-Ray 3.5, as well as the older, more stable, POV-Ray 3.1g.
PVMPOV gives POV-Ray the ability to distribute a rendering across multiple networked computers. The implementation vehicle is the Parallel Virtual Machine (PVM) System 3.3, a package commonly used for distributed processing on a large number of different UNIX systems. You will also need the POV-Ray source code and a compiler before you can use this. The patch contains context diffs, applied using the GNU patch utility, which should be on most UNIX systems.
The 3.5 and 3.1g2 PVMPOV patch was updated by Jakob Flierl and the other PVMPOV team members. The 3.0x PVMPOV patch for POV-Ray 3.0.1 and 3.0.2 were updated by Harald Deischinger <Harald.Deischinger at risc.uni-linz.ac.at> from the original PVMPOV 2.9 patches that I created.
Microsoft Windows users will be happy to learn that there is now a version of PVM for Win32 available in beta form from the PVM developers. This means no royalties or shareware fees of any kind. I would be very interested to hear if anyone can get this working with PVMPOV (I would suggest trying the DOS source code to get the graphics and compiler support).
PVMPOV has been successfully run on SunOS 4.1 (SUN4), Solaris 2.4 (SUN4SOL2), NeXT STEP 3.1 (NEXT), AIX 3.2 (RS6K), AIX 4.1 (RS6KMP), Linux 2.x (LINUX), FreeBSD 1.1.5.1 (FREEBSD), IRIX 5.3 (SGI5) and HP-UX 9.03 (HPUX). If you have success on other systems, I'd be happy to hear about it.
PVM was developed by a team from the University of Tennesee, Oak Ridge National Laboratory, and Emory University. The effort was funded in part by the U.S. Department of Energy, the National Science Foundation and the State of Tennessee. The PVM source is not a part of this modification.
Using the PVM code, there is one master and many slave tasks. The master has the responsibility of dividing the image up into small blocks, which are assigned to the slaves. When the slaves have finished rendering the blocks, they are sent back to the master, which combines them to form the final image. The master does not render anything by itself, although there is usually a slave running on the same machine as the master, since the master doesn't use very much CPU power.
If one or more slaves fail, it is usually possible for PVMPOV to complete the rendering. PVMPOV starts the slaves at a reduced priority by default, to avoid annoying the users on the other machines. The slave tasks will also automatically time out if the master fails, to avoid having lots of lingering slave tasks if you kill the master. PVMPOV can also work on a single machine, like the regular POV-Ray, if so desired.
The code is designed to keep the available slaves busy, regardless of system loading and network bandwidth. I have run PVMPOV on our new 4-processor RS/6000 PowerPC 601/120 systems and have had amazing results (well it was amazing at the time these tests were run ... ;-).
Persistence of Vision Raytracer Ver 2.2.u This is an unofficial version compiled by: Andreas Dilger & Brad Kline - PVM Version 2.9 The POV-Ray Team is not responsible for supporting this version. Copyright 1993 POV-Team ---------------------------------------------------------------------- POV-Ray is based on DKBTrace 2.12 by David K. Buck & Aaron A. Collins. Contributing Authors: (Alphabetically) Steve Anger Steve A. Bennett David K. Buck Aaron A. Collins Alexander Enzmann Dan Farmer Douglas Muir Bill Pulver Robert Skinner Scott Taylor Drew Wells Chris Young Other contributors listed in the documentation. ---------------------------------------------------------------------- POV-Ray Options in effect: +ft +mb25 +nt20 +nn0 +nw28 +nh28 +naRS6KMP +a0.300 +j1.000 +r3 -q9 -w640 -h480 -s1 -e480 -k0.000 -mv2.0 -iskyvase.pov -o/dev/null -l/acs2d/aedilger/povray/include Parsing............ Preprocessing... Spawning 20 PVM tasks on arch RS6KMP... ...20 PVM tasks successfully spawned. Waiting up to 5s for each slave to start... ...20 tasks successfully started. PVM Task Distribution: Tasks-20 Grid width-28 Grid height-28 Sections-414 Waiting for slave stats. PVM Task Distribution Statistics: host name [ done ] [ late ] host name [ done ] [ late ] acs1.acs [ 6.09%] [ 0.00%] acs1.acs [ 4.70%] [ 0.19%] acs1.acs [ 4.85%] [ 0.29%] acs1.acs [ 4.73%] [ 0.15%] acs5.acs [ 5.61%] [ 0.19%] acs5.acs [ 4.30%] [ 0.00%] acs5.acs [ 5.54%] [ 0.26%] acs5.acs [ 5.77%] [ 0.14%] acs6.acs [ 4.81%] [ 0.00%] acs6.acs [ 5.32%] [ 0.13%] acs6.acs [ 5.40%] [ 0.06%] acs6.acs [ 4.89%] [ 0.13%] acs7.acs [ 3.79%] [ 0.00%] acs7.acs [ 4.81%] [ 0.13%] acs7.acs [ 3.32%] [ 0.00%] acs7.acs [ 3.90%] [ 0.00%] acs2.acs [ 5.54%] [ 0.06%] acs2.acs [ 6.89%] [ 0.13%] acs2.acs [ 4.59%] [ 0.45%] acs2.acs [ 5.14%] [ 0.26%] POV-Ray statistics for 16/20 slaves: skyvase.pov statistics -------------------------------------- Resolution 640 x 480 # Rays: 1431443 # Pixels: 262448 # Pixels supersampled: 11286 Ray->Shape Intersection Tests: Type Tests Succeeded Percentage ----------------------------------------------------------- Sphere 2405704 454483 18.89 Plane 24262280 13403881 55.25 Quadric 2405704 1032374 42.91 Cone 2242248 1834117 81.80 Bounds 2242248 1202852 53.64 Calls to Noise: 1696294 Calls to DNoise: 1963598 Shadow Ray Tests: 3987558 Blocking Objects Found: 96039 Reflected Rays: 1067421 Time For Trace: 0 hours 0 minutes 32.00 seconds
Please also see the MPI-Povray site for an MPI version.
As with any unofficial modification to POV-Ray, the POV Team is not responsible for this code. For that matter, neither am I (in a legal sense). The standard disclaimer applies:
"The author disclaims all warranties with regard to this software, including all implied warranties of merchant-ability and fitness. The code is simply distributed as it is. The code may be distributed under the same conditions as apply to the POV-Ray source code. These conditions can be found in the file POVLEGAL.DOC, which should be distributed with the POV-Ray code."<adilger at shaw dot ca>