The AnandTech Linux XBOX PC Experimentby Kristopher Kubicki on November 10, 2004 4:00 PM EST
- Posted in
Distributed RenderingConsumer distributed computing first became vogue in the mid 90's. While the NSA was busy simulating nuclear blasts on big iron, thousands of off-the-shelf computers a day were happily rendering frames for graphic artists. Even as Donald Becker and Thomas Sterling were coining the phrase, "Beowulf Cluster", people at Pixar and Alias were already well experienced in render scheduling on expensive SGI machines, but almost immediately, people began toying with the idea of splitting render jobs over multiple Windows NT machines. The Windows NT render farms were really the first Beowulf clusters used for anything important, and not surprisingly, there happens to be a lot of distributed rendering software out there. The process of rendering - that is taking a raw 3D data file and then raytracing it to produce a high quality image or set of images - happens to be very distributed computing friendly. Early render farms were very basic; if 100 frames needed to be rendered and 10 machines had render software, the host machine simply sent 10 frames to each computer and waited for them to render. Today's software is much more advanced, and network latencies are low enough that the host renderer can apply components of a frame to several different computers at once.
There is some really excellent software like Rush Render Queue that will enable us to use software like Mental Ray for multiplatform rendering. Apple's QMaster also has some great features for distributed rendering for Shake. Today, however, we are just looking at a free ray tracer, POV-Ray. Below, you can see how our configurations ran under various options of the SMPOV addon for POV-Ray.
This test fringes theoretical. Since there are no Linux SMP or multiprocessor versions of POV-Ray, we had to improvise. POV-Ray allows us to render only a component of a scene if we desire, so using NFS we setup a directory where all the XBOX nodes had access the benchmark.ini files. Each file was modified to only render a specific portion of the scene based on the machine host name, and then the benchmark was launched via our scripts. We went through the same process for our Opteron and Xeon machines, launching one render process per processor, effectively running the renderer in SMP mode.
If our Distributed Compiling test was any forewarning, we weren't surprised that the XBOX cluster had a very difficult time being very effective here. Let's hope that the cluster can hold up a little better under encryption algorithms.