Of course, you need to have such a private network, and have the minimal skills to maintain it. But once you are done with it, enslaving all of them in order to share the rendering load among many computers is not a so difficult task, with a light How To. This is what I attempt to provide in this articles!

Downloading and installing Helios

Helios is available for Download in two flavours, for JDK1.5 or JDK1.6. On recent Linux distributions, like the Ubuntu 7.10 with which this article is being written on, various packages are available, like sun-java5-jdk or sun-java6-jdk. Make sure they are installed. If you already did some render with Sunflow previously, it is very likely. For Linux, my Java Home is:
JAVA_HOME="/usr/lib/jvm/java-6-sun-1.6.0.03/jre"
so immediately check what would be your own JAVA_HOME and write it down.

Once you downloaded Helios (currently, the latest version for Linux is 0.1.2 JDK 1.6, just unpack it in the directory of your choice. Let call this directory RENDER_HOME.

Now, copy the RENDER_HOME/lib-ext/jsk-policy.jar file into the JAVA_HOME/jre/lib/ext folder. You will need root/administrator/super-user rights in order to do this.

Now, you should repeat the procedure for each computer in your network that you plan to use within your render farm: install the JDK, install Helios, copy the jsk-policy.jar file.

You are done with installing, let's jump to the next step: configuring the farm!

Configuring Helios

This is the most tricky part. What is written here is true only for personal networks, but Helios can accept your own HTTP server so that you could build a world-wide render farm if it pleases you. But this is well beyond my technical skills.

What is important to understand is that there should be two kind of computers on your network:

  • a master
  • many slaves

Configuring the master computer

All the magic is done on a single file setenv.sh (or setenv.bat for Windows users) which is located in RENDER_HOME/bin. Edit it with you favorite text processor. In the first few lines, uncomment the first export line and fill it with your own JAVA_HOME:
export JAVA_HOME="/usr/lib/jvm/java-6-sun-1.6.0.03/jre"

A few lines below, you will find the JGRID_LOCALHOST, that should be fed with the master computer IP address in your network. Pay attention to NOT state this IP numbers within "quotes". For example, if the master computer is 192.168.1.10:
export JGRID_LOCALHOST=192.168.1.10

Then a few lines later, you will find:
export CLASSSERVER_HOST=$JGRID_LOCALHOST

It is important to leave this line untouched for the master computer. But these are all the changes to be applied to the file!

Configuring the slave computers

It's a little bit more tedious, because there are certainly many computers in the farm. For each one you will have to adapt the setenv.sh file.

Exactly like for the master computer, in the first few lines, uncomment the first export line and fill it with the computer's own JAVA_HOME:
export JAVA_HOME="/usr/lib/jvm/java-6-sun-1.6.0.03/jre"

A few lines below, you will find the JGRID_LOCALHOST, that should be fed with the slave computer's IP address. Again, pay attention to NOT state this IP numbers within "quotes"! For example, if the slave computer is 192.168.1.11:
export JGRID_LOCALHOST=192.168.1.11

Then a few lines later, you will find:
export CLASSSERVER_HOST=$JGRID_LOCALHOST

There, you have to feed the IP address of the master computer so you'd likely report the JGRID_LOCALHOST value from the master computer:
export CLASSSERVER_HOST=192.168.1.10

Running Helios

At first, you need to run Helios first on the master computer. This is done by executing each of these scripts (and in this exact order) from the RENDER_HOME/bin directory:

  • classserver.sh
  • lookup.sh
  • cs.sh
  • browser.sh
  • client.sh

Execute each one in a different console, so that you will be able to monitor all the processes. Especially in the classserver console, a lot of interesting information will stream, both for status and debuging purposes!

Then, you can run Helios on each slave computer, by runing the cs.sh script that belongs to its own RENDER_HOME/bin directory. If the setenv.sh file has been correctly configured, then you can check its console and keep an eye on it, especially if some lazy slaves doesn't do their render tasks: they perhaps encountered a problem, reported in this console.

Working with Helios

The User Manual is very well done and worths a read, but the client GUI is quite intuitive. The only good habit to take is to copy the files to be rendered in the RENDER_HOME/lib-dl/files directory.