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.
Download Multiblend 1.4
|
Development
repository
Usage
To give you a feeling of how Multiblend works, here is an
overview of its usage.
- Make sure you can reach the computers via SSH.
- Set up the Multiblend configuration file.
- Run Multiblend.
- Have a cup of tea.
- 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:
python multiblend.py -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.