How to build a powerful distributed computer

From an SSH connection, you can launch a remote desktop session by typing 'vncserver :1' followed by a password. When the remote session is active, you can connect to a desktop session on each machine using a VNC client such as TightVNC Viewer for Windows or Vinagre for Ubuntu.

When specifying the address to connect to, make sure that you follow the IP numbers with ':1', as this is needed in order to specify which screen session to connect to.

Testing the cluster

Now that everything is running as it should, let's test the combined power of the cluster.

The easiest method that we've found (and the one that provides immediate results) is to use Blender, a professional-quality open-source 3D animation system that's particularly mathematically intensive. It's designed to work with more than one instance running on different machines.

You can easily run a job on your server before farming it out to the entire cluster. All you need to do is open an instance of Blender on each machine, get them to read the same '.blend' animation file, switch to the Output page and make sure that every machine is writing its output to the same directory.

You then need to enable both the 'Touch' and 'No Overwrite' options. When rendering is started, each Blender instance will grab the next available frame that hasn't been created by another. It's an effective and pretty quick way of spreading the load.

There are two downsides to this option. Firstly, you'll need to have a screen connected to each node because Blender won't run over VNC. Secondly, Blender will only work with animations. Single-frame images can't be distributed. Alternative solutions are more complicated, but happily, both of these problems can be overcome by installing a render farm queue manager.

The best tool that we found was Distriblend. This suite of free Java tools automatically distributes Blender jobs between the various nodes of your cluster. You use a client to add Blender jobs to a distributor that then sends the jobs on to each node. We used Distriblend for our distributed rendering benchmarks, and we were able to almost quadruple our processing speed across our four machines.

The render time for a 120-frame, 640x480 resolution character animation example from Blender Nation was cut from two minutes to less than 30 seconds. On a more complex fluid dynamics job ('Vector blurred fluid' by Matt Ebb), we saved ourselves over two hours by distributing the 50 frames of animation across our cluster. And that's just the beginning.

If you love 3D graphics, this soon feels like the only way to render. The beauty of it is that your main machine remains unburdened while your cluster does all the hard work.


First published in PC Plus, Issue 278

Now read Supercharge your netbook

Sign up for the free weekly TechRadar newsletter
Get tech news delivered straight to your inbox. Register for the free TechRadar newsletter and stay on top of the week's biggest stories and product releases. Sign up at

Follow TechRadar on Twitter