Multiblend

Blender is a remarkable 3D modelling and animation program. There is one minor issue with it, though: it isn't easy to use multiple computers on a network to render in parallel. That's exactly what this program will do. It connects to multiple computers on your network, and lets Blender render in parallel on each. This will drastically improve your rendering speeds!

Multiblend is a standalone Python script that runs from outside Blender. This means you can even use it on machines that don't have powerful graphics cards, like older computers or servers.

For the exact changes between releases, please read the changelog.

Usage

To give you a feeling of how Multiblend works, here is an overview of its usage.

  1. Make sure you can reach the computers via SSH.
  2. Set up the Multiblend configuration file.
  3. Run Multiblend.
  4. Have a cup of tea.
  5. Enjoy an improved rendering speed.

Read on for the details!

Configuring Multiblend

The configuration is read from /etc/multiblendrc and $HOME/.multiblendrc. Having just one of the two is fine, but you can also have both if you want. An example says more than words:

1 [main] 2 chunks=100 3 nodes=2 4 projectpath=/home/sybren/blender 5 ssh=/usr/bin/ssh -Tq 6 scp=/usr/bin/scp -q 7 8 [node0] 9 hostname=localhost 10 blender=/opt/blender-2.41/blender 11 workdir=/home/sybren/tmp 12 13 [node1] 14 hostname=zebra 15 blender=/opt/blender-2.41/blender 16 workdir=/tmp

Lines 1-6 describe the main section. Line 2 "chunks" contains the number of frames that make up a chunk. A single computer will get this number of frames in one run. Line 3 "nodes" contains the total number of computers you want to use to render. Line 4 "projectpath" contains the local path of your Blender project. Lines 5 and 6 "ssh" and "scp" are set to your SSH and SCP client. You probably don't need to change them.

Lines 8-11 describe node0, the first computer to use. Line 9 "hostname" reflects the hostname or IP address of the computer on your network. In this case, it's a special one - because it says "LOCAL" Multiblend won't connect to it using SSH but simply run Blender locally. Line 10 "blender" points to where Blender is installed on this computer. The last line "workdir" tells Multiblend where the temporary files can be stored on the node.

The last lines, 13-16, describe another computer. You can add as many of them as you want, numbering them node2, node3, etc.

Running Multiblend

Let's assume that your installation is the same as mine (tough chance, but I have to pick something as an example) and your Blender file resides in /home/sybren/blender. Let's render the first 1200 frames of the file called test.blend. This is how that's done:

multiblend -b test.blend -s 1 -e 1200

This will run Blender on all computers in the configuration file. It keeps running until the animation is rendered completely. If you want to stop prematurely, press Ctrl+C.

Setting up the network

The first part - reaching your computers via SSH - is beyond the scope of this document. If you need help with this, just ask me for help. You do need to ensure that you can use SSH without passwords, though, since Multiblend doesn't know your passwords. Read the manual pages for 'ssh-keygen' and 'ssh-copy-id' for that if you don't know how to set it up.

Security note: using SSH like this is even more secure than using passwords. That's right. It's not like you allow everybody access to your machines - only people with a very specific key will get in. The good thing is that you can let different people use different keys to get access to a single account. If you want to lock someone out, you won't have to change a shared password, you just deny access to that person's key.

Rendering speed and nice levels

The nice level of a running program determines how nice the program is to other running programs. A program with a high nice level can use all of your CPU without slowing down your computer, as it moves out of the way as soon as something else needs to use it. Using a nice level higher than 5 is recommended on shared computers, so that other users are not bothered too much by your rendering.

Modern computers, especially laptops, can throttle down the CPU to save energy. It runs at a low speed until some hard work is required, and only then does it speed up. This is also influenced by the nice level. When the nice level of Blender is larger than zero, it might not cause the CPU to speed up. If you notice this, just configure Multiblend to use a nice level of 0, and you'll see your rendering speed go up.

Running on Windows

Windows is the only major operating system on the planet that is shipped without support for SSH. Since MultiBlend relies heavily on SSH, this means you will have to install some extra software to get things going.

I have no experience running MultiBlend on Windows. My best bet would be to get Cygwin and install an OpenSSH sever.

If you attempt a Windows install, please let me know what was needed to get things running, and I'll update this page.

Debugging

To enable debug logging, set the DEBUG environment variable to any value. If that isn't enough to get things running, call for help.